致命错误:超过300秒的最大执行时间
我不断收到这个PHP错误:
致命错误:超过300秒的最大执行时间
我已经尝试将我的max_execution_time
和我的max_input_time
设置在php.ini(包括apache和cli)每个0
, -1
和4000
秒。
而我仍然得到错误说:
致命错误:超过300秒的最大执行时间
以及我的脚本运行超过300秒之前,我收到这条消息
我正在通过命令行运行脚本。
我也检查了我的phpinfo()
所以看看我使用的php.ini
。
更有趣的是,我已经尝试设置max_execution_time
和max_input_time
设置为5秒,我的脚本将运行超过5秒的方式,然后我得到:
致命错误:超过300秒的最大执行时间
在脚本的开始处,您可以添加。
ini_set('MAX_EXECUTION_TIME', -1);
如果您使用WAMP转到:
在php.ini
增加max_execution_time
,然后进入
C:\wamp\apps\phpmyadmin3.4.10.1\libraries
(根据您的安装更改path)
打开config.default.php
并将$cfg['ExecTimeLimit']
值更改为0:
$cfg['ExecTimeLimit'] = 0;
这将解决PhpMyAdmin导入问题。
Xampp用户
- 转到
xampp\phpMyAdmin\
- 打开config.inc.php
- search
$cfg['ExecTimeLimit'] = 300;
- 更改为0为无限或放大一个值
- 如果找不到,请在
xampp\phpMyAdmin\libraries
查找config.default.php
- search
$cfg['ExecTimeLimit'] = 300;
- 更改为0为无限或放大一个值
- 保存该文件并重新启动服务器
编辑:
根据@brandozz,可以添加 $cfg['ExecTimeLimit'] = 0;
到config.inc.php文件,如果它不存在。 如果它适用于其他人,请在这里留言,我将编辑答案。
我遇到了类似的情况,结果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进行configuration,并为CLI请求提供无限的最大执行时间。
我build议在未来的CI版本升级的情况下logging这个变化。
在您的脚本中尝试如下所示:
set_time_limit(1200);
这是正确的答案:
去
c:\wamp\apps\phpmyadmin3.4.10.1\libraries\config.default.php
find并设置
$cfg['ExecTimeLimit'] = 0;
重启所有服务并完成。
PHP的CLI的默认执行时间是无限的。
这设置脚本允许在parsing器终止之前运行的最长时间(以秒为单位)。 这有助于防止拼写不佳的脚本捆绑服务器。 默认设置是30.当从命令行运行PHP时,默认设置为0。
http://gr.php.net/manual/en/info.configuration.php#ini.max-execution-time
检查你是否在安全模式下运行PHP,因为它会忽略所有的时间exec设置。
去xampp / phpmyadmin / libraries / config.default.php
并进行以下更改
from $cfg['ExecTimeLimit'] = '300′; to $cfg['ExecTimeLimit'] = '0′;
WAMP用户:
1)转到C:\ wamp \ apps \ phpmyadmin
2)打开config.inc
3)添加$ cfg ['ExecTimeLimit'] ='3600'; 到文件。
4)保存文件并重新启动服务器。
这个文件覆盖了php.ini,并且会为你工作!
就我而言,当我在Phpmyadmin遇到这个错误时,我尝试了MySQL-Front并成功导入了我的数据库。
注意:您仍然可以在此问题下使用提供的解决scheme来解决您在Phpmyadmin中的问题。
如果上面的答案不起作用,请尝试检查你的代码,按照我的经验,有一个无限循环也会导致这个问题。检查你的其他语句。
在Codeignitor 3.0.x版中,system / core / Codeigniter.php不包含时间限制和插入
ini_set('MAX_EXECUTION_TIME', -1);
将不起作用,因为codeignitor会用自己的函数set_time_limit()覆盖它。 所以要么你必须从codeignitor删除该function,或者只是你可以插入
set_time_limit('1000');
在PHP文件的开始,如果你想改变到1000秒。 将时间设置为0(零),如果你想运行它,只要它想。
在Xampp上,在php.ini中,您必须检查mysql.connect_timeout。 因此,例如,将其更改为:
mysql.connect_timeout = 3600
这个时间总是以秒为单位(在我的例子中是1小时)
MAMP用户编辑php.ini解决了这个问题 – 有一条线:
max_execution_time = 30; 每个脚本的最大执行时间,以秒为单位
将其设置为更高的值。
该文件是在php / php5.6.25 / conf / php.ini(显然,你需要弄湿你正在使用的PHP版本的文件 – 你可以从MAMP偏好中find这个。
你可以设定时间限制:
ini_set('max_execution_time', 1000000000000000);