2011-10-06 83 views
53

我不断收到此PHP的错误:致命错误:300秒最长执行时间超过

Fatal error: Maximum execution time of 300 seconds exceeded

我曾尝试在php.ini中设置我的max_execution_time和我max_input_time设置(Apache和CLI)来0,各为-14000秒。

,我仍然得到错误说:

Fatal error: Maximum execution time of 300 seconds exceeded

除了我的脚本运行超过300秒钟,然后我得到这个消息

我正在通过命令行脚本。

我也检查了我的phpinfo(),所以看看我正在使用哪个php.ini

更有趣的我已经尝试设置max_execution_timemax_input_time设置至5秒,我的脚本将运行方式超出了前5秒我得到:

Fatal error: Maximum execution time of 300 seconds exceeded

+0

什么样的服务器设置是否在? –

+0

最好的解决方案[这里](http://www.steptoinstall.com/fatal-error-maximum-execution-time-30-seconds-exceeded-wordpress.html)... – KarSho

+1

这是如此奇怪我有同样的问题apache 2.4.18和php 7 ...使用PHPMyAdmin导入sql .. phpinfo();报告不同的时间..将尝试ini设置我猜:( –

回答

47

在脚本的开始部分,您可以添加。

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

添加它在顶部你的php文件 – Tules

+1

这行代码会做什么? – 2015-02-13 16:27:11

+1

这行代码会放弃一个代码的最大执行时间限制,允许php代码永远运行(理论上) – Technotronic

8

尝试类似的东西在你的脚本如下:

set_time_limit(1200); 
+3

'set_time_limit(0);'让你的脚本永远运行。 – Jonathon

+22

'set_time_limit(0);'_allows_你的脚本永远运行 –

1

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

This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30. When running PHP from the command line the default setting is 0.

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

检查,如果你正在运行在安全模式PHP的,因为它是在忽略所有的时间EXEC设置。

23

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

在系统/核心/ Codeigniter.php,线106 2.1版本。 3显示信息如下:

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

由于没有其他的方式来避免改变核心文件,我删除它,以便允许配置通过php.ini中,以及给予的无限最大执行时间CLI请求。

但是,我建议在未来CI版本升级的情况下在某处记录此更改。

+7

OH。MY。GOODNESS。我无法相信这一点。为什么这个血腥的世界会将执行时间限制在已存在的所有其他执行时间限制之上?我在这方面浪费了几个小时。感谢您的发表。 – fool4jesus

+0

这是令人难以置信的。注释掉该行并开始工作!为什么CI会覆盖默认的PHP默认值,并且不提供文档? –

+0

如果您正在阅读本文,并且您正在使用ExpressionEngine(建立在CodeIgniter上)......那么 - 猜猜看 - EE覆盖了CI的覆盖!你需要编辑/system/codeigniter/system/core/Codeigniter.php第106行和/system/expressionengine/libraries/Core.php第64行。这是我一生中发现的一个有趣的事情。 – Jack

66

如果你使用WAMP转到:

增加php.inimax_execution_time然后去

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

开放config.default.php$cfg['ExecTimeLimit']改变为0值:

$cfg['ExecTimeLimit'] = 0; 

这将解决针对PhpMyAdmin导入问题。

+2

+1。这也解决了我的问题。干杯! – S16

+0

嗨!很好,它工作。谢谢! –

+0

@Vipin,你的解决方案帮了我,特别是那个config.default.php ;-) –

6

这是正确的答案:

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

查找和设置

$cfg['ExecTimeLimit'] = 0; 

重启所有服务 和完成。

+0

完美答案,谢谢@llioor – kach

0

WAMP USERS:

1)进入到C:\瓦帕\ APPS \ phpmyadmin的

2)打开config.inc

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

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

此文件覆盖php.ini,并且会为您工作!

38

XAMPP用户

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

这实际上是唯一对我有用的东西。所以感谢发布。在我的设置中,$ cfg ['ExecTimeLimit'] = 300;在config.inc.php中不存在,所以我在那里添加了它,而不是改变config.default.php中的值 - 有一个相当大的消息,说明不要触摸该文件中的代码;) – Ian

+1

谢谢!它工作 –

+4

感谢突出显示**重新启动服务器**。最重要的遗忘点。 –

0

在我而言,当我在phpMyAdmin遇到的错误,我想MySQL-Front并成功地导入我的数据库。

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

0

如果上述答案无效,请尝试检查您的代码,按照我的经验,有无限循环也会导致该问题。请检查您的其他语句。

-1

您可以设置时间限制:

ini_set('max_execution_time', 1000000000000000); 
0

在Codeignitor 3.0.x版的系统/核心/ Codeigniter.php不包含时间约束以及插入

ini_set('MAX_EXECUTION_TIME', -1); 

不会因为codeignitor会用自己的函数set_time_limit()覆盖它。 因此,无论你要删除codeignitor该功能或者干脆你可以在php文件的开头插入

set_time_limit('1000'); 

,如果你想改变的是1000秒。 如果你想运行它只要它想要的时间,将时间设置为0(零)。

0

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

mysql.connect_timeout = 3600 

时间会在几秒钟内始终计算(所以在我的例子1小时)

0

MAMP USERS 编辑的php.ini解决了这个 - 有一条线:

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

将其设置为更高的值。

该文件是在PHP/php5.6.25/conf目录/ php.ini文件(obviousl你需要湿你使用的是PHP版本的文件 - 你可以从MAMP喜好找到这个

2

去。到XAMPP/phpMyAdmin的/库/ config.default.php

,并做如下修改

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

对于本地的appserv

转到C:\的appserv \ WWW \ phpMyAdmin的\图书馆\ config.default.php

查找$cfg['ExecTimeLimit']与设定值0

因此,它会像

$cfg['ExecTimeLimit'] = 0; 
相关问题