我添加set_time_limit(0);
了增加执行时间的功能,但它最多只执行 2-3 分钟。
error_reporting(E_ALL);
error_reporting(1);
set_time_limit(0);
我想从一个需要很长时间的网站中搜索链接。
PHP 文件(例如,my_lengthy_script.php)
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
.htaccess 文件
<IfModule mod_php5.c>
php_value max_execution_time 300
</IfModule>
更多配置选项
<IfModule mod_php5.c>
php_value post_max_size 5M
php_value upload_max_filesize 5M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300
php_value session.gc_maxlifetime 1200
</IfModule>
如果是 wordpress,请在 config.php 文件中进行设置,
define('WP_MEMORY_LIMIT', '128M');
如果是 drupal,则为 sites/default/settings.php
ini_set('memory_limit', '128M');
如果您使用其他框架,
ini_set('memory_limit', '128M');
您可以将内存增加为千兆字节。
ini_set('memory_limit', '3G'); // 3 Gigabytes
259200 表示:-
( 259200/(60x60 minutes) ) / 24 hours ===> 3 Days
在您的 htaccess 文件中添加这些代码行。我希望它能解决你的问题。
<IfModule mod_php5.c>
php_value max_execution_time 259200
</IfModule>
好吧,由于您在共享服务器上,因此您无能为力。他们通常设置最大执行时间,以便您无法覆盖它。我建议你联系他们。
好吧,有两种方法可以更改 max_execution_time。
1、可以直接在php.ini文件中设置。
2.其次,您可以在代码中添加以下行。
ini_set('max_execution_time', '100')
对于 PHP 7 ,使用mod_php7.c而不是mod_php5.c
例子
<IfModule mod_php7.c>
php_value max_execution_time 500
</IfModule>
您的网络服务器中可能设置了限制。一些浏览器/代理也会实现超时。通过 HTTP 请求调用长时间运行的进程简直是愚蠢的。解决问题的正确方法(假设您不能使处理速度更快)是使用 HTTP 请求触发 webserver 会话组之外的处理,然后通过 HTTP 轮询状态,直到获得结果集。
这是一个老问题,但如果今天有人发现它,php 很可能会通过 php-fpm 和 mod_fastcgi 运行。在这种情况下,这里没有任何东西可以帮助延长执行时间,因为 Apache 将终止与 30 秒内不输出任何内容的进程的连接。扩展它的唯一方法是在 apache (module/site/vhost) 配置中更改 -idle-timeout。
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /run/php/php7.0-fpm.sock -idle-timeout 900 -pass-header Authorization
更多细节 -增加 PHP-FPM 空闲超时设置
尝试设置更长的时间max_execution_time
:
<IfModule mod_php5.c>
php_value max_execution_time 300
</IfModule>
<IfModule mod_php7.c>
php_value max_execution_time 300
</IfModule>