增加 php 的最大执行时间

发布于 2024-12-09 07:47:00 字数 221 浏览 0 评论 0原文

我添加了 set_time_limit(0); 函数来增加执行时间,但最多只执行 2-3 分钟。

error_reporting(E_ALL);
error_reporting(1);
set_time_limit(0);

我想从一个需要很长时间的网站搜索链接。

I have added set_time_limit(0); function to increase execution time but its executing only 2-3 minutes maximum.

error_reporting(E_ALL);
error_reporting(1);
set_time_limit(0);

I want to search links from a site which is taking a long time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

陪你到最终 2024-12-16 07:47:00

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

更多详情见我的博客

PHP file (for example, my_lengthy_script.php)

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

.htaccess file

<IfModule mod_php5.c>
php_value max_execution_time 300
</IfModule>

More configuration options

<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>

If wordpress, set this in the config.php file,

define('WP_MEMORY_LIMIT', '128M');

If drupal, sites/default/settings.php

ini_set('memory_limit', '128M');

If you are using other frameworks,

ini_set('memory_limit', '128M');

You can increase memory as gigabyte.

ini_set('memory_limit', '3G'); // 3 Gigabytes

259200 means:-

( 259200/(60x60 minutes) ) / 24 hours ===> 3 Days

More details on my blog

残月升风 2024-12-16 07:47:00

将这些代码行添加到您的 htaccess 文件中。我希望它能解决您的问题。

<IfModule mod_php5.c>
php_value max_execution_time 259200
</IfModule>

Add these lines of code in your htaccess file. I hope it will solve your problem.

<IfModule mod_php5.c>
php_value max_execution_time 259200
</IfModule>
屌丝范 2024-12-16 07:47:00

好吧,由于您位于共享服务器上,因此您无能为力。他们通常会设置最大执行时间,以便您无法覆盖它。我建议你联系他们。

Well, since your on a shared server, you can't do anything about it. They usually set the max execution time so that you can't override it. I suggest you contact them.

屋檐 2024-12-16 07:47:00

嗯,有两种方法可以更改 max_execution_time。
1.可以直接在php.ini文件中设置。
2. 其次,您可以在代码中添加以下行。

ini_set('max_execution_time', '100')

well, there are two way to change max_execution_time.
1. You can directly set it in php.ini file.
2. Secondly, you can add following line in your code.

ini_set('max_execution_time', '100')
萧瑟寒风 2024-12-16 07:47:00

使用 mod_php7.c 而不是 mod_php5.c

对于 PHP 7示例,

<IfModule mod_php7.c>
   php_value max_execution_time 500
</IfModule>

Use mod_php7.c instead of mod_php5.c for PHP 7

Example

<IfModule mod_php7.c>
   php_value max_execution_time 500
</IfModule>
泪冰清 2024-12-16 07:47:00

您的网络服务器中可能设置了限制。一些浏览器/代理也会实现超时。通过 HTTP 请求调用长时间运行的进程是非常愚蠢的。解决问题的正确方法(假设您无法加快处理速度)是使用 HTTP 请求触发 Web 服务器会话组之外的处理,然后通过 HTTP 轮询状态,直到获得结果集。

There's probably a limit set in your webserver. Some browsers/proxies will also implement a timeout. Invoking long running processes via an HTTP request is just plain silly. The right way to solve the problem (assuming you can't make the processing any faster) is to use the HTTP request to trigger processing outside of the webserver session group then poll the status via HTTP until you've got a result set.

梦中的蝴蝶 2024-12-16 07:47:00

这是一个老问题,但如果今天有人发现它,那么 php 很可能会通过 php-fpm 和 mod_fastcgi 运行。在这种情况下,这里没有任何内容可以帮助延长执行时间,因为 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 空闲超时设置

This is old question, but if somebody finds it today chances are php will be run via php-fpm and mod_fastcgi. In that case nothing here will help with extending execution time because Apache will terminate connection to a process which does not output anything for 30 seconds. Only way to extend it is to change -idle-timeout in apache (module/site/vhost) config.

FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /run/php/php7.0-fpm.sock -idle-timeout 900 -pass-header Authorization

More details - Increase PHP-FPM idle timeout setting

似狗非友 2024-12-16 07:47:00

尝试设置更长的 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>

Try to set a longer 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文