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');
(我添加了换行符以便于阅读)
答案 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没有问题,但从来没有超过这个。