解决办法The page you are looking for is temporarily unavailable错误,php-cgi没启动
By admin
- 2 minutes read - 349 words今天访问WordPress程序做的网站,突然出现The page you are looking for is temporarily unavailable错误,服务器环境为: Linux+Nginx+MySQL+PHP。于是上网查找解决方法,找到以下两个解决方法,作为参考:
** 解决方法一:**
访问discuz论坛很正常,但是一旦访问uc_server的后台就这样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 进程数够大,可通过修改php-fpm.conf或者使用 http://blog.haohtml.com/archives/5530 介绍的命令修改
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
其它可能情况:
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进程
比如,这样写也可以:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 2 -u nobody -g nobody -f /usr/bin/php-cgi
( nobody 是Linux系统中内置的匿名账号 )
** **
2)如果是unix socket,可能 socket文件权限没有写入能力
srwxrwxr-x 1 gavin gavin 0 11-12 10:18 php-fcgi.sock
为其他用户添加写入能力
chmod o+w php-fcgi.sock
———————————————————————————-
解决方法二:
今天网站突然出现如下错误:
The page you are looking for is temporarily unavailable.Please try again later.
很奇怪,我对服务器端的技术不是很熟悉,于是查询了下google,在https://wiki.archlinux.org/index.php/Nginx
上面的解决方法:
Error: The page you are looking for is temporarily unavailable. Please try again later.
This is because the FastCGI server has not been started.
如何解决呢?
刚开始我怀疑是不是nginx挂了,我首先通过ps aux | grep nginx,结果出现:
root 3769 0.0 0.0 5760 692 ? Ss Apr21 0:00 nginx: master process /usr/local/nginx/sbin/nginx
www 3770 0.0 0.1 18680 14252 ? S Apr21 0:03 nginx: worker process
www 3771 0.0 0.1 18680 14252 ? S Apr21 0:03 nginx: worker process
www 3772 0.0 0.1 18712 14276 ? S Apr21 0:03 nginx: worker process
www 3774 0.0 0.1 18680 14248 ? S Apr21 0:03 nginx: worker process
www 3776 0.0 0.1 18712 14240 ? S Apr21 0:03 nginx: worker process
www 3777 0.0 0.1 18680 14252 ? S Apr21 0:03 nginx: worker process
www 3778 0.0 0.1 18680 14232 ? S Apr21 0:02 nginx: worker process
root 24068 0.0 0.0 5196 756 pts/1 S+ 14:33 0:00 grep nginx
可见nginx是正常的,本来打算重启nginx的:
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf的,
突然觉得有没有其他方法,有同事提示先在一个目录下运行下test.html和test.php,结果html可以运行,php无法运行。
证实是php没有启动,我刚才也检测过php的进程,的确是没有php进程,这台服务器我不熟悉,同事帮忙查看了下
cd /etc/init.d,就是web管理员经常看的地方,是随着系统自动启动的服务,程序等。可以看看:
http://blog.wgzhao.com/2008/12/27/talk-about-rc-local.html的《 说说?**/etc/rc.d/rc.local **》
找到:
**/usr/local/php/sbin/php-fpm start **,首先什么是php-fpm呢?
就是FastCGI Process Manager,是一种可选的PHP FastGCI执行模式,有一点很有特点的应用,尤其是一个繁忙的网站中:
(1)可适应的进行再生(NEW!)
(2)基本的统计功能(Apache’s mod_status)
(3)高级进程管理功能,能够优雅的停止/开始
(4)能够使用不同的工作用户和不同的php.ini
(5)输入,输出日志记录…
开启后,一切恢复正常!自己的服务器端技术还是有很多地方使用的不够。需要多学习使用!