我已经添加了 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>
由于您使用的是共享服务器,您无法对此做任何事情。通常,他们会设置最大执行时间,以防止您覆盖它。我建议您联系他们。
使用 mod_php7.c 替代 mod_php5.c 以适用于 PHP 7
示例
<IfModule mod_php7.c>
php_value max_execution_time 500
</IfModule>
嗯,有两种方法可以更改max_execution_time。
1. 您可以直接在php.ini文件中设置它。
2. 其次,您可以在您的代码中添加以下行。
ini_set('max_execution_time', '100')
这是一个老问题,但如果有人今天找到它,那么很可能是通过php-fpm和mod_fastcgi运行php。在这种情况下,因为Apache将终止连接到30秒内没有输出任何内容的进程,所以这里没有任何东西可以帮助扩展执行时间。唯一的方法是更改apache(模块/站点/虚拟主机)配置中的-idle-timeout。
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /run/php/php7.0-fpm.sock -idle-timeout 900 -pass-header Authorization
更多细节 - 增加 PHP-FPM 空闲超时设置
你的 Web 服务器可能设置了限制。一些浏览器/代理也会实现超时。通过 HTTP 请求调用长时间运行的进程只是愚蠢的做法。解决问题的正确方法(假设你无法使处理速度更快)是使用 HTTP 请求触发 Web 服务器会话组外的处理,然后通过 HTTP 轮询状态,直到获得结果集。
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>