ChatGPT解决这个技术问题 Extra ChatGPT

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

我正在从在线资源下载 JSON 文件,当它通过循环运行时,我收到此错误:

致命错误:第 24 行 C:\wamp\www\temp\fetch.php 中的最大执行时间超过 30 秒

Maximum execution time of 60 seconds exceeded 的可能重复项,它已经是其他三个的重复项。提问前请使用搜索功能。
“set_time_limit() 函数和配置指令 max_execution_time 仅影响脚本本身的执行时间。任何花费在脚本执行之外的活动上的时间,例如使用 system() 的系统调用、流操作、数据库查询等. 在确定脚本运行的最长时间时不包括在内。这在 Windows 上不是这样“来自 PHP 文档

K
KARASZI István

你的循环可能是无止境的。如果不是,您可以像这样延长最大执行时间:

ini_set('max_execution_time', '300'); //300 seconds = 5 minutes

set_time_limit(300);

可以用来临时延长时间限制。


set_time_limit(300) 可用于临时延长时间限制。
此设置是否仅适用于该一个脚本,还是会影响同一服务器上此脚本之后执行的所有其他脚本?
@Rao 是的,这仅适用于那个脚本。要使其适用于所有脚本,您需要在 php.ini 文件中对其进行更改。你也可以做 set_time_limit(0);如果您希望脚本永远运行,或者长时间运行
ini_set('max_execution_time', 0); //没有限制
@sangam 我想说这是最好的做法,在允许一定数量的额外缓冲区的同时保持这个限制尽可能低。出于安全原因,我不想完全关闭它。应该设置合理。实际上,我将其设置为在中等服务器压力级别下完成最长运行脚本所需的时间的两倍。但它总是可能失败。所以最佳实践也是单独处理耗时脚本的超时问题。
R
Rubens Mariuzzo

我遇到了同样的问题,并通过更改 php.ini 中的参数 max_execution_time 的值来解决它,如下所示:

max_execution_time = 360      ; Maximum execution time of each script, in seconds (I CHANGED THIS VALUE)
max_input_time = 120          ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 128M           ; Maximum amount of memory a script may consume (128MB by default)

我希望这可以帮助你。


由于某种原因 ini_set 不起作用,但这肯定有帮助!
php.ini 可以在 /etc/php5/apache2/php.ini 中找到....我使用的是 ubuntu 13.04...
在 wamp 上安装 moodle 时我遇到了同样的问题,但解决了配置 php.ini 文件
更改php.ini后需要重启apache
[php7] - 须藤纳米 /etc/php/7.0/apache2/php.ini
M
Massa

上面所有的答案都是正确的,但在某些情况下我使用了一种简单的方法来避免它。

只需将此命令放在脚本的开头:

set_time_limit(0);

这根本不推荐
关闭时间限制不能防止无限循环,因此请始终设置(更大)限制。
@IamtheMostStupidPerson 为什么不呢?如果您将其用作本地主机
P
Praveen Kumar Purushothaman

我在升级到 WordPress 4.0 时遇到了这个问题。默认情况下,WordPress 将最大执行时间限制为 30 秒。

将以下代码添加到 WordPress 安装根目录中的 .htaccess 文件以覆盖默认值。

php_value max_execution_time 300  //where 300 = 300 seconds = 5 minutes

S
StarsSky

编辑 php.ini

找到这一行:

max_execution_time

将其值更改为 300:

max_execution_time = 300

300 表示 http 请求的执行时间为 5 分钟。


t
tlenss

您的脚本超时。查看 set_time_limit() 函数以增加执行时间。或配置脚本以使其运行得更快:)


@HarshaMV他的意思是使用性能配置文件来确定脚本开始缓慢的原因,并优化您的代码以缩短执行时间。这可能有用也可能没用,具体取决于瓶颈是什么(CPU 与磁盘 I/O 与网络)。
N
Nassim

如果上述所有方法都不适合您,则将 .htaccess 文件添加到脚本所在的目录并将其放入

<IfModule mod_php5.c>
php_value post_max_size 200M
php_value upload_max_filesize 200M
php_value memory_limit 300M
php_value max_execution_time 259200
php_value max_input_time 259200
php_value session.gc_maxlifetime 1200
</IfModule>

这就是我解决问题的方法,ini_set('max_execution_time', 86400);set_time_limit(86400) 都没有解决我的问题,但是 .htaccess 方法做到了。


它适用于我的情况。谢谢你。将 M 替换为 G 代表 GB
如果在 php 7 上运行,只需从 mod_php5 更改为 mod_php7
e
elixenide

我们可以通过 3 种不同的方式解决这个问题。

1) 使用 php.ini 文件

2) 使用 .htaccess 文件

3)使用 Wp-config.php 文件(用于 Wordpress)


展示解决问题的 3 种方法的示例将是最有帮助的。
K
KARASZI István

您可以通过在脚本顶部添加以下行将限制设置为零来消除限制:

<?php ini_set('max_execution_time', '0'); ?>

D
Dawson Loudon

按照路径 /etc/php5(your php version)/apache2/php.ini

打开它并将 max_execution_time 的值设置为所需的值。


在某些托管服务提供商上,您可能需要在 /home/[username]/.php/7.0/phprc 上进行设置
M
Michael

也许检查您在 php.ini 文件下更改的任何内容。例如,我将“;intl.default_locale =”更改为“;intl.default_locale = en_utf8”以启用“国际化扩展(Intl)”而不添加“extension = php_intl.dll”,然后发生同样的错误。所以我建议检查类似的错误。


J
JoyGuru

通过在 PHP 脚本顶部添加以下行来增加脚本执行时间。

ini_set('max_execution_time', 120); //120 seconds = 2 minutes

参考来自 Increase the PHP Script Execution Time


B
Buksy

要扩展您的 max_execution_time,您可以使用 ini_setset_time_limit

// Set maximum execution time to 10 seconds this way
ini_set('max_execution_time', 10);
// or this way
set_time_limit(10);

!!但请注意,这两个函数都会重新启动,同时计算脚本已经执行的时间

sleep(2);
ini_set('max_execution_time', 5);

register_shutdown_function(function(){
    var_dump(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']);
});

for(;;);

//
// var_dump outputs float(7.1981489658356)
//

所以如果你想设置脚本可以运行的确切最大时间量,你的命令必须是第一个。

这两个功能之间的区别是

set_time_limit 不返回是否成功的信息,但会在错误时发出警告。

ini_set 在成功时返回旧值,或在失败时返回 false 而没有任何警告/错误


C
Community

您可以使用 WHM 轻松完成。刚到:

WHM -> 服务配置 -> PHP 配置编辑器 -> max_execution_time=30

( 30 是默认值,将其更改为您想要的任何值)


A
Ankit K Gupta

我在 WordPress 站点中遇到了同样的问题,我在 .htaccess 文件中添加了然后对我来说工作正常。

php_value max_execution_time 6000000

I
Imad Ullah

我对我的情况进行了一些更改:xampp\phpMyAdmin\libraries\config.default.php

我搜索过:$cfg['ExecTimeLimit'] 并更改右侧的值...

您可以将右手值更改为任何更高的值,例如“5000”。它有效。


i
infomasud
set_time_limit($time_in_second); // 0 for unlimited time

如果需要长时间运行脚本,我会在运行时使用这个 php 函数。详情here.