编译php。

cd /usr/ports/lang/php5

make config 这里记得选上fast-cgi

make install clean

中间会安装一大堆的依赖库,包括perl之类的,弹出来的依赖库选项使用默认即可。整个过程大概要1个小时,当然视机器性能而定,我的电脑差一点,在vm下面测试的,痛苦啊。

 

完成后,记得拷贝php的配置文件:

cp /usr/local/etc/php,ini-recommended /usr/local/etc/php.ini

这样差不多完成了php的配置,扩展库先不要着急考虑,等测试好之后再安装不迟。

 

OK,下面编译nginx。

我用的bsd版本是7.2rc,编译内核后用ports安装只支持到nginx-0.7.64.tar.gz,未编译内核则支持63版。可以考虑手工下载0.8版,然后自行编译安装,这个回头再做测试。

 

cd /usr/ports/www/nginx

make config 选上fast-cgi。

make install clean

 

安装完成后会在最后打印出安装的目录。

默认是这样的:

http目录:/usr/lcoal/www/nginx

配置文件:/usr/local/etc/nginx/nginx.conf

启动文件:/usr/local/sbin/nginx

还有这个文件,我到现在还没明白是干嘛的:/usr/local/etc/rc.d/nginx

用后面这个,即:rc.d/nginx -t参数可以测试配置文件是否正确

 

然后安装fastcgi

cd /usr/ports/www/spawn-fcgi

make install clean

 

这个装完之后,可以用这个命令测试启动:

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

 

想知道是否启动成功,除了会打印pid之外,用这个:sockstat,看到有9000端口,则启动成功了。

然后再启动nginx:

/usr/local/sbin/nginx

这时看到80端口也起来了。浏览器访问,可以正常访问到welcome页面

 

这时候还没有配置nginx的php驱动,如果访问php文件,则会提示网页无法显示,乖乖,刚开始我还以为是nginx没起来。

 

找到nginx的配置文件:/usr/local/etc/nginx/nginx.conf

 

location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;include fastcgi_params; }

 

这个时候就差不多了。

先杀掉刚刚启动的两个进程:

pkill php-cgi

pkill nginx

然后重新启动一次:

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

/usr/local/sbin/nginx

这个时候再去访问php文件,就ok了!

网上找的这篇文章,讲的最好:

http://hi.baidu.com/liuzhiqun/blog/item/b3877afbb31cc66e024f56e7.html

设置自启动的话,在/etc/rc.conf中加入下面的内容:

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

 

nginx_enable="YES"