寻觅生命中的那一片浅草......

freebsd:Nginx+php+mysql:unknown “fastcgi_script” variable

文章是参考别人的,本人是在原先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文件了。

尚无评论

发表评论

2024年三月
« 5月    
 123
45678910
11121314151617
18192021222324
25262728293031