PHP最大执行时间:报告不正确?

时间:2009-11-25 00:44:03

标签: php apache time timeout execution

PHP脚本是否有任何理由返回致命错误:

Fatal error: Maximum execution time of 60 seconds exceeded in 
H:\xampplite\htdocs\mlm\tera.php on line 1

当我的PHP ini设置为“300000”时,我在脚本本身设置了set_time_limit(300000);。 Safemode已关闭。此外,Apache的超时时间也已设置为“300000”。

为什么PHP会返回这个 - 我很高兴听到为什么会发生这种情况!!

我使用这个PHP脚本主要是使用exec函数通过SQLCMD运行查询。在PHP脚本执行(假设)超过5分钟后,我收到此错误。

注意:在回答这个问题时,请假设毫无疑问我正在使用正确的PHP.ini文件等,而我声称的是实际发生的事情

感谢大家的帮助

P.S。我以前曾问过这个问题,但认为另一个问题变得混乱了。我已经使这个更加具体,希望我能最终关闭这本书。这也是我做过的测试,我不再使用AJAX了。

更新

相关脚本的第1行:

session_start(); 
ini_set("max_execution_time" , 300000); 
error_reporting(0);
ini_set('display_errors', '0');

(我添加了换行符以便于阅读)

5 个答案:

答案 0 :(得分:4)

我在php.net上找到了this comment。您的脚本是否在等待来自其他地方(如文件上传)的输入,可能超过60秒? 60是max_input_time的默认时间,它设置PHP等待接收文件数据的时间。

答案 1 :(得分:2)

phpinfo输出是否实际显示您输入的值(300000)作为相应列中的max_execution_time?没有不同的本地环境?整个phpinfo输出中没有“60秒”,对吗?

我不得不问,因为同样的事情发生在我身上不止一次。

然后,我们看到的是从您的主脚本执行的不同脚本的命令行输出吗?或者其他一些来自不同上下文的PHP脚本实际输出这个?

答案 2 :(得分:1)

使用简单的phpinfo()运行页面;打电话为唯一的一条线。这将告诉你为max_execution_time真正设置了什么变量。

答案 3 :(得分:1)

执行时间限制适用于 php执行时间,不包括等待外部程序或数据库。这可以解释为什么你在超过5分钟后达到60秒的限制。

至于为什么你仍然得到60秒的限制,我不知道。听起来你确定你使用的是正确的php.ini文件,我会检查任何.htaccess文件的php指令,并用phpinfo()检查设置。更改配置中的值并在phpinfo()中验证它已更改。

同时重启您的网络服务器。

答案 4 :(得分:0)

您是否尝试将max_execution_time设置为低于300的某个值?或者真的需要三天半的执行时间吗? (提示:如果答案是肯定的,PHP可能不是工作的工具)一些快速的谷歌搜索没有返回任何结果,但如果300,000超过PHP或apache中的某些硬编码限制我不会感到惊讶。我运行它高达500没有问题,但从来没有超过这个。