Увеличьте максимальное время выполнения для php - PullRequest
58 голосов
/ 12 октября 2011

Я добавил set_time_limit(0); функцию, чтобы увеличить время выполнения, но она выполняется максимум 2-3 минуты.

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

Я хочу искать ссылки с сайта, который занимает много времени.

Любая помощь будет принята с благодарностью.

Большое спасибо.

Ответы [ 7 ]

206 голосов
/ 12 января 2013

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

Подробнее в моем блоге

10 голосов
/ 12 октября 2011

Добавьте эти строки кода в ваш файл htaccess. Я надеюсь, что это решит вашу проблему.

<IfModule mod_php5.c>
php_value max_execution_time 259200
</IfModule>
3 голосов
/ 13 октября 2011

Ну, так как вы находитесь на общем сервере, вы ничего не можете с этим поделать.Обычно они устанавливают максимальное время выполнения, чтобы вы не могли его переопределить.Я предлагаю вам связаться с ними.

1 голос
/ 12 октября 2011

ну, есть два способа изменить max_execution_time.
1. Вы можете напрямую установить его в файле php.ini.
2. Во-вторых, вы можете добавить следующую строку в ваш код.

ini_set('max_execution_time', '100')
0 голосов
/ 25 июня 2019

Используйте mod_php7.c вместо mod_php5.c для PHP 7

Пример

<IfModule mod_php7.c>
   php_value max_execution_time 500
</IfModule>
0 голосов
/ 04 января 2017

Это старый вопрос, но если кто-то найдет его сегодня, скорее всего, php будет запускаться через php-fpm и mod_fastcgi.В этом случае ничто здесь не поможет с увеличением времени выполнения, потому что Apache прервет соединение с процессом, который ничего не выводит в течение 30 секунд.Единственный способ его расширения - изменить -idle-timeout в конфигурации apache (module / site / vhost).

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

Подробнее - Увеличить настройку времени ожидания PHP-FPM

0 голосов
/ 12 октября 2011

Возможно, на вашем веб-сервере установлено ограничение. Некоторые браузеры / прокси также реализуют тайм-аут. Вызывать долго выполняющиеся процессы через HTTP-запрос просто глупо. Правильный способ решения проблемы (при условии, что вы не можете ускорить обработку) - это использовать HTTP-запрос для запуска обработки вне группы сеансов веб-сервера, а затем опрашивать состояние по HTTP, пока не получите набор результатов. 1001 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...