Конфигурация PHP: max_execution_time и max_input_time

Могу ли я установить следующие параметры конфигурации PHP следующим образом:

max_execution_time = 360 max_input_time 360

Это безопасно и эффективно?

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

Итак, каждая загрузка видео занимает несколько минут. Нужно ли менять оба, и значения хорошие?

Спасибо

2 ответа

Решение

В моем понимании, вы не должны изменить ни то, ни другое.

Если вы просто храните видео файлы, используя move_uploaded_fileВам не нужно будет увеличивать свой max_execution_time время загрузки не учитывается во время выполнения.

В руководстве сказано следующее о max_input_time (выделение мое):

Это устанавливает максимальное время в секундах, в течение которого скрипту разрешается анализировать входные данные, такие как POST, GET и загрузка файлов.

Я не проверял это, но для меня это звучит так, как будто в него не входит фактическое время, которое клиент тратит на загрузку файла, просто время, которое требуется для его копирования во временный каталог. Я не могу ручаться за это, хотя, и я не могу найти информацию об этом. По умолчанию 60 секунд должно быть достаточно времени для анализа многих сотен мегабайт файлов.

Я бы порекомендовал найти идеальное значение с помощью реальных тестов. Если ваше соединение слишком быстрое, используйте инструмент, чтобы замедлить его. Посмотрите этот ТАК вопрос для предложений:

Сетевые инструменты, которые имитируют медленное сетевое соединение

В моем случае, max_input_time это влияет на мойmove_uploaded_fileфункция. Мне не удалось загрузить файл размером 3 ГБ с настройкой по умолчанию (max_input_time=60), но это удалось с большим значением (max_input_time=300).

Моя версия PHP - 7.2.19 в среде LAMP.

По умолчанию мой сервер имеет max_input_time как -1. Я предполагаю, что это означает бесконечность.

Другие вопросы по тегам