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


88

我不断收到此PHP错误:

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

我已经尝试设置我max_execution_time和我的max_input_timephp.ini的(Apache和CLI)来0-14000秒每。

而且我仍然收到错误消息:

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

同样,我的脚本运行了300秒钟以上才收到此消息

我正在通过命令行运行脚本。

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

更有趣的是,我尝试将设置 max_execution_timemax_input_time设置设置为5秒,并且我的脚本将在5秒之前运行超过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的垫

Answers:


68

您可以在脚本的开头添加。

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

2
将其添加到您的php文件的最顶部
Tules

2
这行代码将删除代码的最大执行时间限制,从而使php代码能够永远运行(理论上)。
Technotronic

2
在哪个脚本中?
Sagar Kodte '18

set_time_limit(0);=相同。
伊尔默

98

如果您使用的是WAMP,请转到:

增加max_execution_timephp.ini然后转到

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

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

$cfg['ExecTimeLimit'] = 0;

这将解决PhpMyAdmin导入的问题。


@Vipin,您的解决方案对我有帮助,尤其是config.default.php ;-)
Rishi Kulshreshtha 2014年

乐意效劳 !干杯:)
Vipin Dubey 2014年

感谢您,经过无数次挫折之后,尝试将500 MB DB升级到更新版本的moodle……我取得了成功。具体来说就是2.2-2.6。
jamesTheProgrammer 2014年

2
感谢您的回答!在意识到在php.ini中设置最大执行时间后,解决了我的问题!
Rimble 2014年

1
config.default.php关于不进行编辑非常明确,告诉我们进行编辑config.inc.php。我试图找到它,但是找不到,所以我做了自己的并添加了<?php $cfg['ExecTimeLimit'] = 3000; ?>。这什么也没做。我决定尝试并做到这config.default.php一点!我们应该如何进行这项config.inc.php工作?!
BillyNair

67

Xampp用户

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

8
这实际上是唯一对我有用的东西。因此,感谢您的发布。在我的设置中,$ cfg ['ExecTimeLimit'] = 300; config.inc.php中不存在该文件,因此我将其添加到那里,而不是更改config.default.php中的值-有一则相当大的消息指出不要触摸该文件中的代码;)
Ian

4
感谢您突出显示重新启动服务器。最重要的遗忘点。
Pradeep Kumar Prabaharan

4
config.default.php文件中有一条注释,上面写着“不!不要编辑”。我添加了$ cfg ['ExecTimeLimit'] = 0; 到我的config.inc.php文件,因为它不存在并且似乎可以正常工作。
brandozz

1
这篇文章拯救了我的一天,并帮助了我第二次!3个月后我如何加一???
saber tabatabaee yazdi

24

我遇到了类似的情况,事实证明Codeigniter(我使用的PHP框架)实际上设置了自己的时间限制:

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

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

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

但是,我建议在将来的CI版本升级时将此更改记录在某处。


7
哦。我的 好。我无法相信这。为什么血腥的世界会在已经存在的所有其他执行时间限制之外限制执行时间?我为此浪费了时间。感谢您的发表。
fool4jesus

1
简直不可思议。注释掉行和作品!为什么CI会覆盖默认的PHP默认值,而不提供有关它的文档?
Phil Cross

如果您正在阅读本文,并且正在使用ExpressionEngine(基于CodeIgniter构建)...那么-猜猜是什么-EE覆盖CI的覆盖!您需要同时编辑/system/codeigniter/system/core/Codeigniter.php第106行和/system/expressionengine/libraries/Core.php,第64行。这是我一生中发现的三个小时,很有趣。 。
杰克

@PhilCross如果您知道需要执行更多时间的函数,则可以使用Jess的建议并将其set_time_limit(0);放在该函数中。您无需更改内核:此指令将重置时间限制,因此在运行该特定功能时,您无需担心内核或其他软件包中的其他行。
Armfoot


6

这是正确的答案:

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

查找并设置

$cfg['ExecTimeLimit'] = 0;

重新启动所有服务并完成。


完美的答案,谢谢的@llioor
格杰


3

对于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.

1

PHP的CLI的默认执行时间是无限的。

这设置了脚本被解析器终止之前允许运行的最长时间(以秒为单位)。这有助于防止编写不正确的脚本占用服务器。默认设置为30。从命令行运行PHP时,默认设置为0。

http://gr.php.net/manual/zh/info.configuration.php#ini.max-execution-time

检查您是否在安全模式下运行PHP,因为在该模式下它会忽略所有时间exec设置。



1

如果您使用的是xampp并使用phpMyadmin导入大的sql文件,并且增加了max_execution时间,最大文件上传限制以及所需的一切,并且上述解决方案都不对您有用

转到您的xampp文件夹,以我为例,这是我需要修改的文件的相对路径:C:\ xampp \ phpMyAdmin \ libraries \ config.default.php

/** * maximum execution time in seconds (0 for no limit) * * @global integer $cfg['ExecTimeLimit'] * by defautlt 300 is the value * change it to 0 for unlimited * time is seconds * Line 709 for me */ $cfg['ExecTimeLimit'] = 0;


工作$ cfg ['ExecTimeLimit'] = 0; 。谢谢
MindRoasterMir

0

WAMP用户:

1)转到C:\ wamp \ apps \ phpmyadmin

2)打开config.inc

3)添加$ cfg ['ExecTimeLimit'] ='3600'; 到文件。

4)保存文件并重新启动服务器。

该文件将覆盖php.ini,将为您工作!


0

就我而言,当我在Phpmyadmin中遇到该错误时,我尝试使用MySQL-Front并成功导入我的数据库。

注意:在Phpmyadmin中,您仍然可以使用此问题下提供的解决方案来解决您的问题。


Hier gibt es nichts zu sehen ... :-)
rahul

0

如果以上答案不起作用,请尝试检查您的代码,以我的经验,无限循环也会导致该问题。请检查您的else if语句。


0

在Codeignitor 3.0.x版中,system / core / Codeigniter.php不包含时间限制以及插入

ini_set('MAX_EXECUTION_TIME', -1);  

将不起作用,因为codeignitor将使用其自己的函数set_time_limit()覆盖它。因此,您必须从codeignitor中删除该功能,或者只需插入即可

set_time_limit('1000');

如果您想将其更改为1000秒,请在php文件的开头。如果您想运行它,可以将时间设置为0(零)。


0

在Xampp上,必须在php.ini中检查mysql.connect_timeout。因此,例如,将其更改为:

mysql.connect_timeout = 3600

该时间将始终以秒为单位(在我的示例中为1小时)


0

编辑php.ini的MAMP用户解决了此问题-一行:

max_execution_time = 30; 每个脚本的最大执行时间,以秒为单位

将其设置为更高的值会起作用。

该文件位于php / php5.6.25 / conf / php.ini中(显然,您需要弄湿正在使用的php版本的文件-您可以从MAMP首选项中找到该文件。


-1

您可以设置时间限制:

ini_set('max_execution_time', 1000000000000000);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.