Как увеличить тайм-аут транзакции? Я хочу загружать видео, но большой размер видео не загружается?
Он выдает ошибку The process *** exceeded the timeout of 60 seconds.
Как увеличить тайм-аут транзакции? Я хочу загружать видео, но большой размер видео не загружается?
Он выдает ошибку The process *** exceeded the timeout of 60 seconds.
Вам нужно изменить некоторые настройки в 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
Во время выполнения вы также сможете использовать
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)
Завершить ответ Ханнеса.
Вам нужно изменить некоторые настройки в 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 и пометить, где она находится.
Если вы не можете получить доступ к своему php.ini, у вас есть еще две опции.
Вы можете установить эту строку непосредственно в файле "name.php", но я не могу найти для upload_max_filesize для этой опции:
set_time_limit(0);
Или в ".htaccess"
php_value upload_max_filesize 0
php_value max_execution_time 0
если то, что вам нужно сделать, относится только к 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
В качестве дополнения к вышеприведенным ответам вы можете использовать функцию set_time_limit()
:
http://php.net/manual/en/function.set-time-limit.php
передача 0
в качестве аргумента приведет к тому, что ваш script будет работать без ограничения по времени.
У вас была опечатка: ini_set ('max_input_time', '200M') - набор значений должен быть int, например ini_set ('max_input_time', '200')
Сначала проверьте путь к файлу 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'
Я знаю, что вы конкретно спрашиваете о тайм-ауте PHP, но никто, похоже, не упомянул, что на веб-сервере также может быть тайм-аут, и он может выглядеть очень похоже на тайм-аут PHP.
Так что, если вы пытались:
И вы проверили с помощью функции 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/
Если вы используете сервер Microsoft IIS, в дополнение к параметрам php.ini, упомянутым другими, вам может потребоваться увеличить параметры времени ожидания выполнения для приложения PHP FastCGI в диспетчере IIS Server:
Шаг 1) Откройте Диспетчер серверов IIS (обычно в Диспетчере серверов в меню "Пуск", затем "Диспетчер средств /IIS)".
Шаг 2) Нажмите на основное соединение (не относится к какому-либо конкретному домену).
Шаг 3) В разделе IIS найдите настройки FastCGI (показано ниже).
Шаг 4) Щелкните правой кнопкой мыши на приложении PHP и выберите "Изменить".
Шаг 5) Проверьте время ожидания (показано ниже).
В моем случае таймауты по умолчанию здесь составляли 70 и 90 секунд; первый из которых вызывал 500 внутренних ошибок сервера в сценариях PHP, что занимало более 70 секунд.
Если вы не можете редактировать php.ini(например, на вашем сервере), вы можете попытаться изменить параметры php.ini из вашего php-кода. Попробуйте:
ini_set('max_execution_time', 'NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');
Если это не сработает, попробуйте также установить 'set_time_limit' таким же образом, кроме того, я бы сказал, что ваш единственный вариант - связаться с вашим хостом. Эти настройки не могут быть изменены в безопасном режиме.
Тест, если вы находитесь в безопасном режиме - если нет - установите для ограничения времени (Локальное значение) то, что вы хотите:
if(!ini_get('safe_mode')){
echo "safe mode off";
set_time_limit(180);// seconds
phpinfo();// see 'max_execution_time'
}
* Вы не можете установить ограничение по времени таким образом, если безопасный режим 'on'.