Настройка максимального размера файла

Документ актуален для InstantVideo любой версии
Настройка максимального размера файла

Содержание  

    Движок никак не ограничивает максимальный размер файлов, поэтому он полностью зависит от настроек сервера.

    Ограничения файловой системой и архитектурой операционной системы

    В общих случаях для 32-х битных систем максимально возможный размер файла для загрузки составляет 2 Гб, вне зависимости от значений других опций. Для 64-х битных архитектур предельный размер зависит от файловой системы.

    Ограничения PHP

    Основные директивы, от значений которых зависит загрузка файлов:

    • upload_max_filesize;
    • post_max_size;
    • memory_limit;
    • max_execution_time;
    • max_input_time;
    • output_buffering;
    • размер раздела, где находится директория, указанная в директиве upload_tmp_dir

    Директива upload_max_filesize

    Максимальный размер закачиваемого файла.

    Директива post_max_size

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

    Директива memory_limit

    Эта директива задает максимальный объем памяти в байтах, который разрешается использовать скрипту. В сущности, memory_limit должна быть больше чем post_max_size.

    Директива max_execution_time

    Устанавливает максимальное количество секунд, которое может исполнятся скрипт. Данный параметр должен обеспечивать достаточное количество времени для загрузки больших файлов. По умолчанию 30. Заметьте, что в конфигурации web сервера так же есть подобные директивы тайм-аута и они могут перекрыть значения директив php.

    Директива max_input_time

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

    Директива output_buffering

    Буферизация вывода должна быть выключена. output_buffering = 0.

    Примеры

    В конфигурационном файле PHP - php.ini:

    post_max_size=300M
    upload_max_filesize=300M
    max_execution_time=1800
    max_input_time=1800

    В файле .htaccess в корне вашей директории InstantMedia:

    php_value post_max_size 100M
    php_value upload_max_filesize 100M
    php_value max_execution_time 1800
    php_value max_input_time 1800

    Текущие значения указанных опций можно посмотреть в настройках видео каталога во вкладке "Диагностика".

    Ограничения Apache

    В Apache есть директива LimitRequestBody, ограничивающая размер запроса. Эта директива указывает число байтов от 0 (означающее неограниченное количество) до 2147483647 (2GB), которые разрешены в теле запроса. Также, если у вас сайт доступен по https, то необходимо корректировать значение директивы SSLRenegBufferSize.

    Ограничения Nginx

    Если у вас двухуровневая конфигурация веб сервера: Nginx+Apache, то вам необходимо корректировать директиву client_max_body_size. Директива задаёт максимально допустимый размер тела запроса клиента, указываемый в поле “Content-Length” заголовка. Установка параметра размер в 0 отключает проверку размера тела запроса клиента.