[技术>>PHP]

如何解决Nginx+PHP出现The page you are looking for is temporarily unavailable问题

  • 时间:2011年03月21日 11:14:34
  • 浏览量:5276
  • 评论量:2
  • 作者:Kylingood

nginx出现下面错误:

The page you are looking for is temporarily unavailable.
Please try again later.

1.先检查PHP FastCGI进程数是否够用:
netstat -anpo|grep "php-cgi"|wc -l
如果输出为0的话,则表示FastCGI 进程数够大,

2.此时则修改scgi_params文件,找到:
scgi_param SCGI    1;
把它改为:
scgi_param SCGI    5;

3.PHP程序如果的执行时间超过了Nginx的等待时间,就可适当地增加nginx.conf配置文件中FastCGI的timeout时间,例如:
http
{
    ......
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k
    fastcgi_buffers 4 64k
    ......
}

4.重启FastCGI
先杀掉进程:# pkill -9  php-cgi
然后重启:# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

5.重启Nginx
先杀掉进程:# killall -9 nginx
然后重启:# /usr/local/sbin/nginx

改正我的错误:其实出现上面的错误,并不是FastCGI进程数是否够用问题,而是可能下面这篇文章所提到的原因

原文章:http://zhiwei.li/text/2008/11/nginx%E4%B8%8D%E8%83%BD%E5%A4%84%E7%90%86php%E7%9A%84%E9%97%AE%E9%A2%98/

1)访问任意PHP文件,出现
The page you are looking for is temporarily unavailable.
Please try again later.

2)访问html页面,正常

原因:
nginx 不能正常通过FastCGI结果访问 PHP

1)如果是以tcp socket形式,可能是 进程用户权限设置得不对
spawn-fcgi -a 127.0.0.1 -p 9000 -C 2 -u www-data -g www-data -f /usr/bin/php-cgi
可以改为 www-data 或者 nobody, 重启php-cgi进程

2)如果是unix socket,可能 socket文件权限没有写入能力
srwxrwxr-x  1 gavin gavin    0 11-12 10:18 php-fcgi.sock
为其他用户添加写入能力
chmod o+w php-fcgi.sock



参考文章:
http://wubolu.javaeye.com/blog/514466
http://blog.s135.com/post/361/
https://wiki.archlinux.org/index.php/Nginx
http://www.tetx.com/program/htm/tetx/blog/view/blog_id/1209961017/index.htm

原创文章如转载,请注明:转载OOPHP开源博客 [ http://www.oophp.cn/article/view/id/421 ]

上一篇:如何使用Sphinx来实现全文检索(搜索... 下一篇:利用MySQL的MASTER SLAVE...

: Baidu搜藏 QQ书签 Google书签 Del.icio.us POCO网摘 Yahoo书签 新浪ViVi 365Key网摘 天极网摘 和讯网摘 Windows Live 提交新发现,Dig it

用户推荐文章
相关文章
网友评论
发表评论

会员的头像

: 请选个帅照吧!
:  *  尊姓大名大名(2-30字).
:  *  来了就多说几句吧(4-250字)
:  *  没办法,只为防机器人@_@