一台Web服务器:Lighttpd + PHP(fcgi)。本来一直运行好好的,突然发现若干PHP脚本不能运行了,页面显示500错误,Lighttpd错误日志记录:
(mod_fastcgi.c.2462) unexpected end-of-file (perhaps the fastcgi process died): pid: 0 socket: unix:/tmp/php-fastcgi.socket-3
开始以为是Lighttpd某些模块设置影响了PHP脚本的运行,可是反复试验没有发现问题,无意中发现是PHP的问题,其错误日志大小已经达到了2G。
# php-cgi -i | grep error
error_log => /var/log/php/error.log => /var/log/php/error.log
所有出问题的脚本都含有一些写法不严谨的代码,本身会产生Notice语法错误,时间长了,就导致PHP错误日志越来越大。
当PHP运行这些有问题的脚本时,由于错误日志文件已经无法添加新产生的错误信息了,所以这些脚本不能被PHP正常解析,这样,相应的php-cgi进程就死掉了。反应到Lighttpd,就是一个500错误了。
NND,本来很简单的一个故障,可查错竟然浪费了好几个小时的时间。廉颇老矣,尚能饭否?
(mod_fastcgi.c.2462) unexpected end-of-file (perhaps the fastcgi process died): pid: 0 socket: unix:/tmp/php-fastcgi.socket-3
开始以为是Lighttpd某些模块设置影响了PHP脚本的运行,可是反复试验没有发现问题,无意中发现是PHP的问题,其错误日志大小已经达到了2G。
# php-cgi -i | grep error
error_log => /var/log/php/error.log => /var/log/php/error.log
所有出问题的脚本都含有一些写法不严谨的代码,本身会产生Notice语法错误,时间长了,就导致PHP错误日志越来越大。
当PHP运行这些有问题的脚本时,由于错误日志文件已经无法添加新产生的错误信息了,所以这些脚本不能被PHP正常解析,这样,相应的php-cgi进程就死掉了。反应到Lighttpd,就是一个500错误了。
NND,本来很简单的一个故障,可查错竟然浪费了好几个小时的时间。廉颇老矣,尚能饭否?