致命错误:执行时间已超过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个回答

3

所以,经过数小时的尝试,以下方法适用于我 (2023)

  1. 在 xampp/phpMyAdmin/config.inc.php 中添加 $cfg['ExecTimeLimit'] = 6000;

  2. 同时我还修改了 xampp/phpMyAdmin/libraries/configdefault.php 中的 $cfg['ExecTimeLimit'] = 6000;


1
如果您正在使用xampp和phpMyadmin导入大型sql文件,并且已经增加了max_execution时间、max文件上传限制以及其他所需的设置,但以上解决方法都不起作用,请按照以下步骤操作。
1. 进入xampp文件夹,对于我来说,需要修改的文件相对路径是:C:\xampp\phpMyAdmin\libraries\config.default.php 2. 找到下面这段代码:
/** * 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;
3. 将$cfg['ExecTimeLimit']的值改为0,即可取消时间限制。

1

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

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

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

检查一下你是否在安全模式下运行PHP,因为在这种模式下它会忽略所有的时间执行设置。


1
MAMP用户 编辑php.ini可以解决这个问题 - 有一行注释: 最大执行时间每个脚本,以秒为单位
将此设置为更高的值即可解决问题。
该文件位于php/php5.6.25/conf/php.ini中(显然,您需要根据您使用的PHP版本获取该文件 - 您可以从MAMP首选项中找到此信息。

1
在Xampp中,您还需要检查php.ini文件中的mysql.connect_timeout。例如,将其更改为:
mysql.connect_timeout = 3600

那段时间将始终以秒计算(例如我的例子中的1小时)。

0
在Codeigniter 3.0.x版本中,system/core/Codeigniter.php文件不包含时间限制以及插入功能。
ini_set('MAX_EXECUTION_TIME', -1);  

这不会起作用,因为CodeIgniter将使用自己的函数set_time_limit()覆盖它。 因此,您必须从CodeIgniter中删除该函数,或者简单地插入

set_time_limit('1000');

如果你想将 PHP 文件的开头更改为 1000 秒,请设置时间为 0(零),以便让它自由运行。


0

针对OpenServer

modules\system\html\openserver\phpmyadmin\libraries\config.default.php

变更

$cfg[‘ExecTimeLimit’] = 600

0
找到apache2.conf文件。在我的情况下,它位于...
nano /etc/apache2/apache2.conf

然后找到Timeout 300并将其更改为您自己的值。

0
在我的情况下,当我在Phpmyadmin中遇到这个错误时,我尝试了MySQL-Front并成功导入了我的数据库。
注意:您仍然可以使用本问题提供的解决方案来解决Phpmyadmin中的问题。

这里没有什么可看的... :-) - rahul

0

WAMP用户:

1)进入C:\wamp\apps\phpmyadmin

2)打开config.inc文件

3)在文件中添加$cfg['ExecTimeLimit'] = '3600';

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

此文件将覆盖php.ini,并可为您提供服务!


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