致命错误:执行时间已超过300秒的最大限制

110

我一直收到这个PHP错误:

致命错误:超过了300秒的最大执行时间

我已经尝试将我的max_execution_timemax_input_time设置在php.ini(apache和cli)中分别为0-14000秒。

但我仍然收到错误信息,如下所示:

致命错误:超过了300秒的最大执行时间

而且我的脚本在超过300秒后才出现此消息。

我是通过命令行运行脚本的。

我还检查了我的phpinfo()以查看我正在使用哪个php.ini

更有趣的是,我尝试将max_execution_timemax_input_time设置为5秒,但在出现“最大执行时间超过300秒”的错误之前,我的脚本仍然可以运行很长时间。


你使用的是什么类型的服务器设置? - Pekka
1
这太奇怪了,我在apache 2.4.18和php 7上遇到了同样的问题...使用PHPMyAdmin导入sql.. phpinfo();报告不同的时间..我猜会尝试ini设置:( - Michael Fever
我尝试使用set_time_limit(3603); ini_set('max_execution_time',3604); 来解决同样的问题,但两者都没有效果,最大执行时间仍为360。 - Infor Mat
23个回答

110

如果您正在使用WAMP,请按照以下步骤进行:

增加php.ini中的max_execution_time,然后转到:

C:\wamp\apps\phpmyadmin3.4.10.1\libraries(根据您的安装更改路径)

打开config.default.php,并将$cfg['ExecTimeLimit']的值更改为0:

$cfg['ExecTimeLimit'] = 0;

这将解决PhpMyAdmin导入的问题。


@Vipin,你的解决方案帮了我大忙,特别是那个config.default.php ;-) - Rishi Kulshreshtha
谢谢,在经过数小时的挣扎和尝试将一个500MB的数据库升级到Moodle的新版本后......我终于成功了。具体来说,是从Moodle 2.2升级到2.6。 - jamesTheProgrammer
2
谢谢您的回答!在意识到在php.ini中设置最大执行时间不够之后,解决了我的问题! - Rimble
1
“config.default.php”非常明确地告诉我们不要编辑它,而是应该编辑“config.inc.php”。我试图找到它,但没有找到,所以我自己创建了一个,并添加了“<?php $cfg['ExecTimeLimit'] = 3000; ?>”。但这没有起作用。后来我决定尝试在“config.default.php”中进行更改,结果成功了!那么我们应该如何让“config.inc.php”起作用呢? - BillyNair
2
@BillyNair config.inc.php在phpmyadmin根目錄中。 - Tschallacka
显示剩余3条评论

93

Xampp用户

  1. 进入 xampp\phpMyAdmin\
  2. 打开 config.inc.php 文件
  3. 搜索 $cfg['ExecTimeLimit'] = 300;
  4. 设置较大的值 或将其更改为0以实现无限制
  5. 如果找不到该行,添加 $cfg['ExecTimeLimit'] = 900; (或0表示无限制)
  6. 保存文件并 重新启动服务器

重要提示:不推荐将执行时间限制设置为无限制。


10
这是对我起作用的唯一方法。所以感谢您的发帖。在我的设置中,config.inc.php文件中没有$cfg['ExecTimeLimit'] = 300; 这个值,所以我将它添加到那里,而不是更改config.default.php文件中的值——该文件有一个相当大的提示,不要触碰该文件中的代码 ;) - Ian
6
感谢您强调“重新启动服务器”这一点,这是最重要但最容易被忘记的步骤。 - Pradeep Kumar
4
在config.default.php文件中有一条注释写着“不要编辑”。由于该配置在config.inc.php文件中不存在,且似乎有效,我添加了$cfg ['ExecTimeLimit'] = 0;。 - brandozz
1
这篇帖子救了我的一天,而且已经帮助我第二次了!!!三个月后我该如何加一? - saber tabatabaee yazdi

76

在您的脚本开头,您可以添加以下内容。

ini_set('MAX_EXECUTION_TIME', '-1');

2
将其添加到您的PHP文件顶部 - Tules
2
这行代码将删除代码的最大执行时间限制,允许 PHP 代码无限运行(理论上)。 - Technotronic
2
用哪种脚本? - Sagar Kodte
1
或者 set_time_limit(0); = 相同。 - Íhor Mé
如果你想在PHPMyAdmin中完成这个功能怎么办?如何将其添加到您的php文件顶部? - Lee

25

我遇到了类似的情况,结果发现我使用的PHP框架Codeigniter实际上设置了自己的时间限制:

在版本2.1.3中,在system/core/Codeigniter.php的第106行出现以下内容:

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);
}

由于没有其他避免更改核心文件的方法,所以我将其删除,以便通过php.ini进行配置,并为CLI请求提供无限最大执行时间。

然而,我建议在以后进行CI版本升级时记录此更改。


8
哦。我的。天啊。我简直无法相信这件事。为什么在所有已经存在的执行时间限制之上,他们还要限制执行时间?我浪费了好几个小时在这上面。谢谢你发布这个信息。 - fool4jesus
1
真不可思议。注释掉那行代码就好了!为什么CI会覆盖默认的PHP设置,而且还没有提供文档说明呢?! - Phil Cross
如果你正在阅读这篇文章并且使用的是建立在CodeIgniter框架上的ExpressionEngine...那么,猜猜看——EE会覆盖CI的覆盖!你需要同时编辑/system/codeigniter/system/core/Codeigniter.php的第106行和/system/expressionengine/libraries/Core.php的第64行。那可真是我生命中有趣的三个小时啊…… - Jack
@PhilCross 如果你知道需要执行更长时间的函数,你可以使用 Jess 的建议 并在该函数内部放置 set_time_limit(0);。你不需要改变核心:这个指令将重置时间限制,因此在运行特定函数时,您不需要担心核心或其他包中的其他行。 - Armfoot

12

对于 Xampp 用户

1. Go to C:\xampp\phpMyAdmin\libraries
2. Open config.default.php
3. Search for $cfg['ExecTimeLimit'] = 300;
4. Change to the Value 300 to 0 or set a larger value
5. Save the file and restart the server
6. OR Set the ini_set('MAX_EXECUTION_TIME', '-1'); at the beginning of your script you can add.

10

在您的脚本中尝试以下类似的内容:

set_time_limit(1200);

3
set_time_limit(0);会使得你的脚本永远运行下去。 - Jonathon
27
set_time_limit(0); 允许你的脚本永远运行。 - Jess Telford

9
请前往xampp/phpmyadmin/libraries/config.default.php文件,并进行以下更改。
from  $cfg['ExecTimeLimit'] = ’300′;
to  $cfg['ExecTimeLimit'] = ’0′;

7
这是正确答案:

前往

c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php

查找并设置

$cfg['ExecTimeLimit'] = 0;

重新启动所有服务 完成。


完美的答案,谢谢 @llioor - kach

4

对于本地AppServ

进入 C:\AppServ\www\phpMyAdmin\libraries\config.default.php

找到 $cfg['ExecTimeLimit'] 并将其设置为 0。

这样它就会变成:

$cfg['ExecTimeLimit'] = 0;

3

如果您使用本地服务器的xampp, 请前往C:\xampp\phpMyAdmin\libraries\config.default.php

//find $cfg['ExecTimeLimit']= 300;
//increase this value 
$cfg['ExecTimeLimit'] = 3000;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接