文章是参考别人的,本人是在原先lighttpd+fastcgi(php)+mysql环境下直接安装nginx,然后修改相关配置文件/usr/local/etc/nginx/nginx.conf
location / {
root /usr/local/www/nginx;
转载自:http://hacker-piao.blog.163.com/blog/static/122505720091109483328/
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script.name;#PHP文件所在目录
include fastcgi_params;
}
本来是很简单的一个过程,启动的时候出现了问题,unknown “fastcgi_script” variable
然后只能把
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script.name;
修改成
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx;
启动时候是不报错了,但是访问PHP文件出错nginx No input file specified
结果在网上找了一堆资料搞了半天,很多提到php.ini里面的相关设置。
cgi.fix_pathinfo=1
doc_root=
我把能试的都试了,还是不行。又有人说是PHP文件的在目录的权限问题,最后设置成777了还是不行。。。这下郁闷了,
汗死了。。。(就这样浪费了两个多小时)
最后突然发现有的文章
fastcgi_param SCRIPT_FILENAME 这里用的是$fastcgi_script_name
然而我参考的很多文章用的却是$fastcgi_script.name
很可能出错就是在这里了。立马修改成$fastcgi_script_name
重启nginx果然没有报错,访问php文件也正常了。看来是一篇文章出错,然后接着一堆都跟着出错。。。所以今后得细心一点,因为一个小错误导致浪费这么多时间。
cd /usr/ports/www/nginx
make install clean
echo ‘nginx_enable=”YES” >> /etc/rc.conf
cd /usr/ports/lang/php5
#选择支持 fastCGi
make config
make install clean
cd /usr/ports/lang/php5-extensions/
make config
make install clean
#安装 spawn-fcgi
pkg_add -r -v lighttpd
cd /usr/local/bin/
cp spawn-fcgi ../
# 找到安装的版本
pkg_info
# 删除掉lighttpd
pkg_delete lighttpd-1.4.18_1
cp ../spawn-fcgi spawn-fcgi
/usr/local/etc/nginx/nginx.conf
location / {
root /usr/local/www/nginx;
index index.php index.html index.htm;
}
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;
}
先别急着启动nginx
先启动php的fastcgi模式
# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi
参数说明: a 127.0.0.1 : php-fcgi所绑定的web服务器ip
p 9000: nginx连接spawn-fcgi的端口.
u www : 用户名.
g www : 用户组
#ee /etc/rc.local
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -C 25(进程数) -f /usr/local/bin/php-cgi
这样spawn-fcgi就能开机自启动了
在启动spawn-fcgi之后再启动nginx,然后就可以访问php文件了。