未知的Apache2 + PHP5 FastCGI 500错误..由search引擎机器人造成的?

我的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 )“

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/