Подтвердить что ты не робот

Как увеличить тайм-аут выполнения в php?

Как увеличить тайм-аут транзакции? Я хочу загружать видео, но большой размер видео не загружается?

Он выдает ошибку The process *** exceeded the timeout of 60 seconds.

4b9b3361

Ответ 1

Вам нужно изменить некоторые настройки в php.ini:

upload_max_filesize = 2M 
;or whatever size you want

max_execution_time = 60
; also, higher if you must - sets the maximum time in seconds

Если ваш PHP.ini находится, зависит от вашей среды, более подробная информация: http://php.net/manual/en/ini.list.php

Ответ 2

Во время выполнения вы также сможете использовать

set_time_limit(100);

http://php.net/manual/en/function.set-time-limit.php

или в вашем vhost-config

php_admin_value max_execution_time 10000

Наличие глобального времени выполнения, которое является LOW, в основном является хорошей идеей по причинам производительности в не очень надежных приложениях. Таким образом, вы можете разрешить только тем сценариям, которые выполняются дольше, чем это необходимо.

p.s.: Не забывайте о post_max_size и upload_max_filesize (например, первый ответ сказал allready)

Ответ 3

Завершить ответ Ханнеса.

Вам нужно изменить некоторые настройки в php.ini:

upload_max_filesize = 2M 
;or whatever size you want

max_execution_time = 60
; also, higher if you must

Если кто-то хочет поставить неограниченное (я не знаю, почему, но если вы хотите), вы можете поместить дважды в 0:

Вам нужно изменить некоторые настройки в php.ini:

upload_max_filesize = 0 

max_execution_time = 0

И если вы не знаете, где находится ваш php.ini. Вы можете сделать файл "name.php" на своем сервере и поставить:

<?php phpinfo(); ?>

На вашем веб-сайте вы можете увидеть конфигурацию своего php.ini и пометить, где она находится.

Редактировать 9 января 2015 года:

Если вы не можете получить доступ к своему php.ini, у вас есть еще две опции.

Вы можете установить эту строку непосредственно в файле "name.php", но я не могу найти для upload_max_filesize для этой опции:

set_time_limit(0);

Или в ".htaccess"

php_value upload_max_filesize 0
php_value max_execution_time 0

Ответ 4

если то, что вам нужно сделать, относится только к 1 или 2 страницам, я предлагаю использовать set_time_limit, чтобы это не повлияло на все приложение.

set_time_limit(some_values);

но, конечно, эти 2 значения (post_max_size & upload_max_filesize) подлежат расследованию.

Вы можете установить его с помощью функции ini_set function.

ini_set('post_max_size','20M');
ini_set('upload_max_filesize','2M');

или непосредственно в файле php.ini, как ответ выше Ханнеса, или даже установите его в .htaccess, как показано ниже

php_value upload_max_filesize 2M
php_value post_max_size 20M

Ответ 5

В качестве дополнения к вышеприведенным ответам вы можете использовать функцию set_time_limit():

http://php.net/manual/en/function.set-time-limit.php

передача 0 в качестве аргумента приведет к тому, что ваш script будет работать без ограничения по времени.

Ответ 6

У вас была опечатка: ini_set ('max_input_time', '200M') - набор значений должен быть int, например ini_set ('max_input_time', '200')

Ответ 7

Сначала проверьте путь к файлу php.ini по phpinfo(); а затем изменили параметры PHP.INI:

upload_max_filesize = 1000M
memory_limit = 1500M
post_max_size = 1500M
max_execution_time = 30

перезапустил Apache

set_time_limit(0); // safe_mode is off

ini_set('max_execution_time', 500); //500 seconds

Примечание: вы также можете использовать команду для поиска php.ini в Linux

locate 'php.ini'

Ответ 8

Я знаю, что вы конкретно спрашиваете о тайм-ауте PHP, но никто, похоже, не упомянул, что на веб-сервере также может быть тайм-аут, и он может выглядеть очень похоже на тайм-аут PHP.

Так что, если вы пытались:

  1. Увеличение времени ожидания в php.ini путем добавления строки: max_execution_time = {количество секунд, т.е. 60 в течение одной минуты}
  2. Увеличение времени ожидания в вашем скрипте путем добавления: ini_set ('max_execution_time', '{количество секунд, т.е. 60 в течение одной минуты}');

И вы проверили с помощью функции phpinfo(), что max_execution_time действительно увеличено, затем вы можете попробовать добавить это в .htaccess, чтобы убедиться, что у самого Apache нет времени ожидания:

RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]

Больше информации здесь:https://www.antropy.co.uk/blog/php-script-keeps-timing-out-despite-ini-set/

Ответ 9

Если вы используете сервер Microsoft IIS, в дополнение к параметрам php.ini, упомянутым другими, вам может потребоваться увеличить параметры времени ожидания выполнения для приложения PHP FastCGI в диспетчере IIS Server:

Шаг 1) Откройте Диспетчер серверов IIS (обычно в Диспетчере серверов в меню "Пуск", затем "Диспетчер средств /IIS)".

Шаг 2) Нажмите на основное соединение (не относится к какому-либо конкретному домену).

Шаг 3) В разделе IIS найдите настройки FastCGI (показано ниже).

enter image description here

Шаг 4) Щелкните правой кнопкой мыши на приложении PHP и выберите "Изменить".

Шаг 5) Проверьте время ожидания (показано ниже).

enter image description here

В моем случае таймауты по умолчанию здесь составляли 70 и 90 секунд; первый из которых вызывал 500 внутренних ошибок сервера в сценариях PHP, что занимало более 70 секунд.

Ответ 10

Если вы не можете редактировать php.ini(например, на вашем сервере), вы можете попытаться изменить параметры php.ini из вашего php-кода. Попробуйте:

ini_set('max_execution_time', 'NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');

Если это не сработает, попробуйте также установить 'set_time_limit' таким же образом, кроме того, я бы сказал, что ваш единственный вариант - связаться с вашим хостом. Эти настройки не могут быть изменены в безопасном режиме.

Ответ 11

Тест, если вы находитесь в безопасном режиме - если нет - установите для ограничения времени (Локальное значение) то, что вы хотите:

if(!ini_get('safe_mode')){

    echo "safe mode off";
    set_time_limit(180);// seconds

    phpinfo();// see 'max_execution_time'
}

* Вы не можете установить ограничение по времени таким образом, если безопасный режим 'on'.