我不断收到这个 PHP 错误:
致命错误:超过 300 秒的最大执行时间
我尝试将 php.ini(apache 和 cli)中的 max_execution_time
和 max_input_time
设置分别设置为 0
、-1
和 4000
秒。
我仍然收到错误消息:
致命错误:超过 300 秒的最大执行时间
在我收到这条消息之前,我的脚本运行了 300 多秒
我正在通过命令行运行脚本。
我还检查了我的 phpinfo()
,看看我使用的是哪个 php.ini
。
更有趣的是,我尝试将 max_execution_time
和 max_input_time
设置为 5 秒,而我的脚本将运行超过 5 秒,然后我得到:
致命错误:超过 300 秒的最大执行时间
如果您使用 WAMP,请转到:
增加 php.ini
中的 max_execution_time
然后转到
C:\wamp\apps\phpmyadmin3.4.10.1\libraries
(根据您的安装更改路径)
打开 config.default.php
并将 $cfg['ExecTimeLimit']
的值更改为 0:
$cfg['ExecTimeLimit'] = 0;
这将解决 PhpMyAdmin 导入的问题。
Xampp 用户
转到 xampp\phpMyAdmin\ 打开 config.inc.php 搜索 $cfg['ExecTimeLimit'] = 300;设置更大的值或更改为 0 表示无限制 如果未找到添加 $cfg['ExecTimeLimit'] = 900; (或 0 表示无限制)保存文件并重新启动服务器
重要提示:不建议将执行时间限制设置为无限制。
您可以在脚本的开头添加。
ini_set('MAX_EXECUTION_TIME', '-1');
set_time_limit(0);
= 相同。
我遇到了类似的情况,结果发现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 版本升级的情况下记录此更改。
set_time_limit(0);
放在该函数中。您无需更改核心:此指令将重置时间限制,因此您无需担心核心或其他包中的其他行,同时运行该特定功能。
对于 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.
在您的脚本中尝试以下内容:
set_time_limit(1200);
set_time_limit(0);
使您的脚本永远运行。
set_time_limit(0);
允许您的脚本永远运行。
转到 xampp/phpmyadmin/libraries/config.default.php
并进行以下更改
from $cfg['ExecTimeLimit'] = ’300′;
to $cfg['ExecTimeLimit'] = ’0′;
这是正确的答案:
去
c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php
查找并设置
$cfg['ExecTimeLimit'] = 0;
重新启动所有服务并完成。
对于本地 AppServ
转到 C:\AppServ\www\phpMyAdmin\libraries\config.default.php
找到 $cfg['ExecTimeLimit']
并将值设置为 0。
所以它看起来像
$cfg['ExecTimeLimit'] = 0;
如果本地服务器中的 xampp 转到 C:\xampp\phpMyAdmin\libraries\config.default.php
//find $cfg['ExecTimeLimit']= 300;
//increase this value
$cfg['ExecTimeLimit'] = 3000;
PHP 的 CLI 的默认执行时间是无限的。
这设置了脚本在被解析器终止之前允许运行的最长时间(以秒为单位)。这有助于防止编写不佳的脚本占用服务器。默认设置为 30。从命令行运行 PHP 时,默认设置为 0。
http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time
检查您是否在安全模式下运行 PHP,因为它会忽略所有 time exec 设置。
MAMP 用户编辑 php.ini 解决了这个问题 - 有一行:
max_execution_time = 30 ;每个脚本的最大执行时间,以秒为单位
将其设置为更高的值有效。
该文件位于 php/php5.6.25/conf/php.ini 中(显然您需要为您正在使用的 php 版本润湿该文件 - 您可以从 MAMP 首选项中找到它。
如果您在 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;
WAMP 用户:
1) 转到 C:\wamp\apps\phpmyadmin
2) 打开 config.inc
3) 添加 $cfg['ExecTimeLimit'] = '3600';到文件。
4) 保存文件并重新启动服务器。
该文件会覆盖 php.ini 并为您工作!
就我而言,当我在 Phpmyadmin 中遇到该错误时,我尝试了 MySQL-Front 并成功导入了我的数据库。
注意:您仍然可以使用此问题下提供的解决方案来解决您在 Phpmyadmin 中的问题。
如果上述答案不起作用,请尝试检查您的代码,根据我的经验,无限循环也会导致该问题。请检查您的 else if 语句。
在 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(零)。
在 Xampp 上,在 php.ini 中您也必须检查 mysql.connect_timeout。因此,例如,将其更改为:
mysql.connect_timeout = 3600
该时间将始终以秒为单位(在我的示例中为 1 小时)
在我有多个 phpmyadmin 的配置中的 wamp 上,配置文件中的值在 wamp/alias/phpmyadmin.conf
中被覆盖。我在那里设置了两条线:
1. php_admin_value max_execution_time 3600
2. php_admin_value max_input_time 3600
……终于奏效了!
对于 OpenServer
modules\system\html\openserver\phpmyadmin\libraries\config.default.php
改变
$cfg[‘ExecTimeLimit’] = 600
所以,花了几个小时后,这对我有用(2022 年 6 月)
添加 $cfg['ExecTimeLimit'] = 6000;进入 xampp/phpMyAdmin/config.inc.php 我也更改 $cfg['ExecTimeLimit'] = 6000;在 xampp/phpMyAdmin/libraries/configdefault.php
您可以设置时间限制:
ini_set('max_execution_time', 1000000000000000);
config.default.php
非常明确地表示不要编辑它,而是告诉我们要编辑config.inc.php
。我试图找到它但找不到,所以我自己制作并添加了<?php $cfg['ExecTimeLimit'] = 3000; ?>
。这什么也没做。我决定尝试在config.default.php
中进行操作,并且成功了!!我们应该如何使config.inc.php
工作?!?