FreeBSD+nginx+php+fcgi配置步骤

我是个BSD新手。这几天迫不得已将服务器环境迁移到FreeBSD上来。
从周六到现在,整整5天一直为这个配置而头痛,记录下我整个配置的过程,当然也提醒自己,以后碰到问题一定要细心找原因。
 
安装好bsd,并更新ports之后,
先编译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"
 
 
以上经过本人5天的奋斗,测试通过。

本文出自 “小萨” 博客,谢绝转载!

你可能感兴趣的:(PHP,nginx,配置,FreeBSD,BSD)