Может ли тайм-аут сервера контролироваться кодом? - PullRequest
6 голосов
/ 24 мая 2011

Я использовал учебник для создания PHP-скрипта для загрузки файлов на сервер. Он прекрасно работает для изображений и небольших файлов <10 МБ, но при превышении этого размера он не работает. Я считаю, что это может быть связано с таймаутом сервера. Вопрос в том, правильно ли я полагаю, что сервер может подождать, пока файл не загрузится? </p>

Конечно, может быть еще одна проблема, о которой я не задумывался: по сценарию, который у меня есть, большие загрузки не приводят к ошибке, и отображается текст "success"!

Буду признателен за любые полезные советы:)

Ответы [ 6 ]

7 голосов
/ 24 мая 2011
3 голосов
/ 24 мая 2011

Вы можете установить тайм-аут, используя set_time_limit($seconds)

Если вы установите $seconds в 0, сервер не будет использовать тайм-аут - но используйте это очень осторожно!

2 голосов
/ 24 мая 2011

В PHP есть функция с именем set_time_limit () , которую вы можете использовать, чтобы установить, сколько времени потребуется, прежде чем PHP прекратит работу из-за продолжительного запуска.Будьте осторожны с этим, потому что установка его в 0 может привести к тому, что обработка php будет ждать вечно и пожирать ресурсы вашего сервера.

Вы также можете установить эту директиву в php.ini или из файлов apache .htaccess.

В php.ini

также есть max_input_time
1 голос
/ 24 мая 2011

Эти директивы могут быть полезны:

  • upload_max_filesize
  • max_execution_time

Эти директивы могут быть изменены в php.iniили через функцию ini_set .

1 голос
/ 24 мая 2011

убедитесь, что разрешено более 10 МБ для загрузки http://php.net/manual/en/features.file-upload.errors.php

затем с php

set_time_limit(0);

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

0 голосов
/ 24 мая 2011

Если вы используете PHP в качестве модуля Apache и предыдущие ответы не работают, вы можете посмотреть на Тайм-аут Apache , но это не рекомендуется.

...