最近一直在研究freeBSD下nginx+php+mysql的安装,看了很多网上的资料收获不小,不过大部分都是编译安装,相对初学者来说比较复杂,不容易理解,所以我整合了一些ports安装的资料,都是经过自己验证后的,安装成功也比较容易理解,下面是两种成功的案例,其中有一个是Apache代替nginx的安装,希望对大家有所帮助。
安装前更新好ports:
       进入系统后,准备cvs更新:
1.         cd /usr/ports/net/cvsup-without-gui
2.         cp /usr/share/examples/cvsup/ports-supfile /etc/ports-supfile
3.         # vi /etc/ports-supfile
将其中的#*default host=CHANGE_THIS.FreeBSD.org一行改为
*default host=cvsup4.FreeBSDchina.org
4.         更新ports
    /usr/local/bin/cvsup -g -L 2 /etc/ports-supfile
       1,freeBSD下Apache+php+mysql安装
       
安装时必须用root用户或su方式登录后生效
安装配置apache
#cd /usr/ports/www/apache22/
#make config 将mysql勾上
#make install clean
#rehash
#ee /usr/local/etc/apache22/httpd.conf 修改以下配置
ServerAdmin James@xuwenhui.com
ServerName 192.168.1.1:80
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#ee /boot/defaults/loader.conf 修改以下配置
accf_data_load="YES"
accf_http_load="YES"
#echo 'apache22_enable="YES"' >> /etc/rc.conf 启动时自动运行apache服务
如果不成功可以:ee /etc/rc.conf 里添加
apache22_enable="YES"

#apachectl start
输入地址看到It works!表示安装成功.
安装配置php5及php5-extensions
#cd /usr/ports/lang/php5
#make config apache一定要勾上,不然apache认不出php
#make install clean
#cd /usr/ports/lang/php5-extensions
#make config 选上需要支持的扩展
#make install clean
#cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
#apachectl restart 重启apache后php就生效了
安装配置mysql
#cd /usr/ports/databases/mysql50-server
#make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean 由于这个版本不支持make config,我们只能用参数编译
#rehash
#cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
#echo "default-character-set=utf8" >> /etc/my.cnf 修改数据库默认字符集为UTF-8
#chown -R mysql /var/db/mysql
#/usr/local/bin/mysql_install_db -u mysql
#/usr/local/bin/mysqld_safe & 如果没有报错就说明配置没有问题,接下来可以直接启动数据库
#/usr/local/etc/rc.d/mysql-server start
#mysql -u root -p 测试连接数据库
#echo 'mysql_enable="YES"' >> /etc/rc.conf 启动时自动运行mysql服务
可能遇到的问题
Mysql Server has gone away
意思就是mysql服务器倒掉了。

在freebsd最好采用ports安装mysql,一般没有问题的,我原来也运行过的。
不过现在换成了centos,我觉得更爽些。

以下在我原来在编译mysql时的笔记,有点乱,你看看可能对你有帮助。我想你的问题很可能出在这个地方。WITH_CHARSET=latin1 WITH_COLLATION=latin1_general_ci WITH_XCHARSET=all 建议你用我推荐的编译选项。latin1更适用的。
       2,freeBSD下nginx+php+mysql的安装

安装axel提高ports的安装速度

 
  

安装 Mysql5.1.40

cd /usr/ports/databases/mysql51-server
make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean

#安装系统数据库
/usr/local/bin/mysql_install_db --user=mysql
cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf

#设置 mysql 开机启动
vi /etc/rc.conf
#添加以下内容
mysql_enable="YES"

#启动mysql
/usr/local/etc/rc.d/mysql-server start

安装 Nginx

安装 pcre8.00

pcre 是Nginx 所需的 Perl兼容正则表达式库
cd /usr/ports/devel/pcre
make install

安装 Nginx0.8.24

 
   
 
  

安装 libxml2-2.7.6

 
  

安装 GD

安装 libpng1.2.40

 
  

安装 jpeg v7

 
  

安装 freetype2.3.11

 
  

安装 gd2.0.35

 
  

安装 PHP

安装 php5.2.11(FastCGI模式)

 
  

安装 ZendOptimizer3.3.9

whereis ZendOptimizer
cd /usr/ports/devel/ZendOptimizer
make install clean
本人是新手,中间有错误的地方还请大家见谅,欢迎留言互相学习。