PHP Fun的Apache 500错误

caz*_*zer 5 php apache timeout max execution

所以我在我的godaddy(不要讨厌我)虚拟服务器上运行PHP脚本,我期望花5分钟左右完成执行.该脚本是CURLing页面,但一次不会超过1页(它在循环中重复使用相同的变量).我将我的php5.ini文件修改为以下内容:

max_execution_time = 600
max_input_time = 120
memory_limit = 64M 
Run Code Online (Sandbox Code Playgroud)

我通过phpinfo验证了ini文件更改已生效,但是我在120秒后收到Apache 500错误.这是此时的错误日志:

[Wed Jul 11 22:08:52 2012] [warn] [client **.**.**.***] mod_fcgid: read data timeout in   120 seconds
[Wed Jul 11 22:08:52 2012] [error] [client **.**.**.***] Premature end of script headers: test.php
Run Code Online (Sandbox Code Playgroud)

如果有人对我为什么会遇到这些错误或任何有关事情的建议有任何想法,我将不胜感激.我确实注意到设置为120的php设置中的一个选项,但我不确定它是否会产生影响:realpath_cache_tt

我还在.php文件中设置了一个时间限制:set_time_limit(600);

提前致谢.

更新: 这是我在.htaccess文件中尝试的内容:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
<IfModule mod_fcgid.c>
IPCCommTimeout  7200
</IfModule>
Run Code Online (Sandbox Code Playgroud)

导致任何页面加载时出现Apache 500错误. 我也禁用了FastCGI,但问题仍然存在.

已解决的 RobB建议如下:IPCCommTimeout 7200哪个应该有效但是由于我的godaddy共享托管它是不允许的.是时候找到一个新的托管服务了.

Rob*_*obB 6

我不确定在GoDaddy上处理这个问题,但正常的解决方案如下:

您遇到的问题是由于FastCGI正在执行PHP脚本,但它不会在默认IO超时(120秒)内生成响应,从而导致500内部服务器错误.

尝试编辑默认的VirtualHost配置文件,通常位于上下文中/etc/apache2/sites-available/default并在<VirtualHost>上下文中添加此指令:

<IfModule mod_fcgid.c>
   IPCCommTimeout  7200
</IfModule>
Run Code Online (Sandbox Code Playgroud)

保存修改后,使用以下命令重启apache2 : sudo /etc/init.d/apache2 restart.

从我可以从GoDaddy确定的是,共享主机中的PHP/FastCGI的最长时间限制是120秒,客户端无法增加.我建议联系他们的支持,希望他们的声誉不会提供,你将能够得到帮助.

更新: 不确定它是否有帮助,但您可以尝试在主机控制中心(设置>文件扩展名> php5)中从FastCGI更改为PHP5.