我的Ubuntu服务器在FastCGI模式下configuration了Apache 2.2.8和PHP 5.2.4-2ubuntu5.18。 一切运作良好,除了我看到500错误似乎只来自机器人访问服务器..例如(access.log):
x.125.71.104 – – [16 / Nov / 2011:10:27:39 +1100]“GET / HTTP / 1.1”500 41377“ – ”“Mozilla / 5.0(compatible; Baiduspider / 2.0; + http:// www.baidu.com/search/spider.html )“
x.40.103.239 – [16 / Nov / 2011:11:05:56 +1100]“GET / HTTP / 1.0”500 14717“ – ”“Mozilla / 5.0(compatible; mon.itor.us – free monitoring service ; http://mon.itor.us )“
x.249.67.114 – – [14 / Nov / 2011:20:57:17 +1100]“GET / HTTP / 1.1”500 101“ – ”“Mozilla / 5.0(compatible; Googlebot / 2.1; + http:// www.google.com/bot.html )“
- 对于IIS 7.5中的HTTP请求状态代码,TRIGGER_STATUS和FINAL_STATUS有什么区别?
- 详细的错误不适用于IIS中的WCF服务
- Apache不显示PHP错误的自定义500错误页面
- 如何解决Apache 500内部服务器错误? (重启,状态,尾巴…然后呢?)
- pread()只读yyyy的xxxx
x.55.39.85 – – [14 / Nov / 2011:19:31:06 +1100]“GET / HTTP / 1.1”500 7032“ – ”“msnbot / 2.0b(+ http://search.msn.com /msnbot.htm)._ “
我的理解是,当PHP程序无法响应Apache时,会发生500错误,这可能是由致命的PHP错误引起的,或者PHP用完了进程。所以我的假设是,无论是机器人都击中服务器太难了,杀死PHP进程,或从机器人的请求头中的东西导致我的PHP脚本致命的错误? 如果任何人都可以提供这方面的意见,将不胜感激!
瑞安
你想要机器人索引您的网站? 如果不是,我不会担心。 如果你这样做,检查PHP的错误日志( /var/log/php通常是一个很好的默认的地方看看),看看是什么导致PHP绊倒僵尸。
他们可能没有提供GET params或POST数据到一个需要它正常工作的脚本。 在这种情况下,我会更好地处理请求,如果脚本包装数据库查询,可能会返回404 (因为除非您提供相应的参数才能find任何东西)。 如果他们正在做一些更陌生的事情,可能会返回一个400 Bad Request 。
看看这个网站,看它是否有你需要的信息。 http://redmine.lighttpd.net/projects/1/wiki/Docs:PerformanceFastCGI
一路下来,它说:“为什么我的PHP应用程序不时返回500?”
对于那些有500个错误的人来说,这个代码中的第一行需要指向一个unix套接字,而不是TCP / IP地址/端口 – 这在Ubuntu 12.10.x上 – 如果你在/etc/php5/fpm/pool.d/www.conf你会发现FPM被设置为侦听一个unix套接字。
FastCgiExternalServer /var/www/php5.external -socket /var/run/php5-fpm.sock AddHandler php5-fcgi .php AddHandler php5-fcgi .wfr Action php5-fcgi /usr/lib/cgi-bin/php5.external Alias /usr/lib/cgi-bin/ /var/www/