ChatGPT解决这个技术问题 Extra ChatGPT

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

我不断收到这个 PHP 错误:

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

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

我仍然收到错误消息:

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

在我收到这条消息之前,我的脚本运行了 300 多秒

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

我还检查了我的 phpinfo(),看看我使用的是哪个 php.ini

更有趣的是,我尝试将 max_execution_timemax_input_time 设置为 5 秒,而我的脚本将运行超过 5 秒,然后我得到:

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

您使用的是哪种服务器设置?
这太奇怪了,我在 apache 2.4.18 和 php 7 上有同样的问题...使用 PHPMyAdmin 导入 sql.. phpinfo();报告不同的时间..我猜会尝试ini设置:(
同样的问题,我尝试设置 set_time_limit(3603); ini_set('max_execution_time', 3604);但两者都没有效果,最大执行时间仍然是 360。

y
yarl

如果您使用 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 ;-)
乐意效劳 !干杯:)
感谢您的回答!在意识到在 php.ini 中设置最大执行时间是不够的后,帮助解决了我的问题!
config.default.php 非常明确地表示不要编辑它,而是告诉我们要编辑 config.inc.php。我试图找到它但找不到,所以我自己制作并添加了 <?php $cfg['ExecTimeLimit'] = 3000; ?>。这什么也没做。我决定尝试在 config.default.php 中进行操作,并且成功了!!我们应该如何使 config.inc.php 工作?!?
@BillyNair config.inc.php 位于 phpmyadmin 根目录中
T
Technotronic

Xampp 用户

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

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


这实际上是唯一对我有用的东西。所以感谢发帖。在我的设置中, $cfg['ExecTimeLimit'] = 300; config.inc.php 中不存在,所以我将它添加到那里,而不是更改 config.default.php 中的值——有一条相当大的消息指出不要触摸该文件中的代码;)
感谢您强调重新启动服务器。最重要的遗忘点。
config.default.php 文件中有一条注释,上面写着“否!!请勿编辑”。我添加了 $cfg['ExecTimeLimit'] = 0;到我的 config.inc.php 文件,因为它不存在并且它似乎工作。
这篇文章拯救了我的一天,第二次帮助了我!!! 3个月后怎么加一个???
r
reformed

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

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

将其添加到您的 php 文件的最顶部
这行代码将放弃代码的最大执行时间限制,允许 php 代码永远运行(理论上)。
在哪个脚本中?
set_time_limit(0); = 相同。
如果您尝试在 PHPMyAdmin 中执行此操作怎么办? ?你怎么能把它添加到你的 php 文件的顶部?
x
xiankai

我遇到了类似的情况,结果发现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 版本升级的情况下记录此更改。


哦。我的。善良。我无法相信这。为什么血腥的世界会在已经存在的所有其他执行时间限制之上限制执行时间?我在这上面浪费了几个小时。感谢您的发表。
难以相信。注释掉这条线并且有效!为什么 CI 会覆盖默认的 PHP 默认值,而不提供关于它的文档?!
如果您正在阅读本文并且您正在使用 ExpressionEngine(基于 CodeIgniter 构建)...好吧 - 你猜怎么着 - EE 覆盖了 CI 的覆盖!您需要同时编辑 /system/codeigniter/system/core/Codeigniter.php 第 106 行和 /system/expressionengine/libraries/Core.php 第 64 行。这是我生命中有趣的三个小时发现.. .
@PhilCross 如果您知道需要执行更多时间的函数,您可以使用 Jess' suggestion 并将 set_time_limit(0); 放在该函数中。您无需更改核心:此指令将重置时间限制,因此您无需担心核心或其他包中的其他行,同时运行该特定功能。
R
Rafiqul Islam

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

D
Darth Egregious

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

set_time_limit(1200);

set_time_limit(0); 使您的脚本永远运行。
set_time_limit(0); 允许您的脚本永远运行。
m
maazza

转到 xampp/phpmyadmin/libraries/config.default.php

并进行以下更改

from  $cfg['ExecTimeLimit'] = ’300′;
to  $cfg['ExecTimeLimit'] = ’0′;

C
CRUSADER

这是正确的答案:

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

查找并设置

$cfg['ExecTimeLimit'] = 0;

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


完美的答案,谢谢@llioor
d
davidkonrad

对于本地 AppServ

转到 C:\AppServ\www\phpMyAdmin\libraries\config.default.php

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

所以它看起来像

$cfg['ExecTimeLimit'] = 0;

M
MOAZZAM RASOOL

如果本地服务器中的 xampp 转到 C:\xampp\phpMyAdmin\libraries\config.default.php

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

M
Mob

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

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

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

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


J
Jeremy Young

MAMP 用户编辑 php.ini 解决了这个问题 - 有一行:

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

将其设置为更高的值有效。

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


弄湿文件帮助我+1
N
Noor Ahmed

如果您在 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;


A
Asi

WAMP 用户:

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

2) 打开 config.inc

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

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

该文件会覆盖 php.ini 并为您工作!


J
Jamshid Hashimi

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

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


Hier gibt es nichts zu sehen... :-)
佚名

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


W
Wenuka

在 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(零)。


a
andymnc

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

mysql.connect_timeout = 3600

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


J
J. M. Arnold

在我有多个 phpmyadmin 的配置中的 wamp 上,配置文件中的值在 wamp/alias/phpmyadmin.conf 中被覆盖。我在那里设置了两条线:

1. php_admin_value max_execution_time 3600

2. php_admin_value max_input_time 3600

……终于奏效了!


Y
YurgenTM

对于 OpenServer

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

改变

$cfg[‘ExecTimeLimit’] = 600

I
Imran_Developer

所以,花了几个小时后,这对我有用(2022 年 6 月)

添加 $cfg['ExecTimeLimit'] = 6000;进入 xampp/phpMyAdmin/config.inc.php 我也更改 $cfg['ExecTimeLimit'] = 6000;在 xampp/phpMyAdmin/libraries/configdefault.php


b
binhhoang18

您可以设置时间限制:

ini_set('max_execution_time', 1000000000000000);

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅