0

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);在脚本本身中设置了更多。安全模式已关闭。此外,Apache 的超时时间也被设置为“300000”。

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

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

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

谢谢大家的帮助

PS我以前问过这个问题,但认为另一个问题变得混乱。我已经更具体地说明了这一点,希望我能最终结束这本书。这也是我所做的一项测试,我不再使用 AJAX。

更新

有问题的脚本的第 1 行:

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

(我添加了换行符以使其更易于阅读)

4

5 回答 5

4

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

于 2009-11-25T01:30:28.557 回答
2

phpinfo 输出是否实际上将您输入的值 (300000) 显示为相应列中的 max_execution_time?有没有不同的本地设置?整个 phpinfo 输出中的任何地方都没有“60 秒”,对吧?

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

那么,我们看到的可能是您从主脚本执行的不同脚本的命令行输出吗?或者来自不同上下文的 PHP 脚本实际上输出这个的其他方式?

于 2009-11-25T01:21:05.490 回答
1

使用简单的 php_info() 运行页面;call 作为唯一的线路。这将告诉您真正为最大执行时间设置了什么变量。

于 2009-11-25T00:45:56.673 回答
1

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

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

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

于 2009-11-25T01:06:07.723 回答
0

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

于 2009-11-25T00:59:41.883 回答