Хостинг

Почему не загружаются файлы на сайт больше 1Mb

Настройка сервера

Было у меня такое — в конфиге движка все задал, как надо, в php.ini тоже, а большие фото все равно не грузятся. Долго ковырялся, пока не понял, что загвоздка в настройках nginx. Есть у него в конфигурации параметр client_max_body_size, и этот параметр должен быть больше максимального размера загружаемого фото, которое вы установили. Чтобы задать этот параметр, нужно конфиг-файле nginx в секции http добавить строку:

client_max_body_size 32M;

Еще одна «засада» может быть, если используется Apache и PHP работает в режиме FastCGI. В этом случае сервер при загрузке изображений размером чуть больше почтовой марки может давать ошибку 500, а в логах сервера может быть ошибка примерно с таким текстом:

mod_fcgid: HTTP request length 134801 (so far) exceeds MaxRequestLen (131072)

Лечится это добавлением в /etc/apache2/mods-enabled/fcgid.conf строки

FcgidMaxRequestLen 33554432

Так, чтобы в итоге получилось примерно так:

<IfModule mod_fcgid.c>
  FcgidConnectTimeout 20
  FcgidMaxRequestLen 33554432

  # Тут могут быть еще директивы
</IfModule>

 

Cenos /etc/httpd/conf.d/fcgid.conf или Deb/untu /etc/apache2/mods-available/fcgid.conf можно указать FcgidMaxRequestLen 1073741824 – это 1 GB.

 

Пример опций
FcgidIdleScanInterval 30
FcgidIdleTimeout 60
FcgidIOTimeout 300
FcgidProcessLifeTime 600
FcgidMinProcessesPerClass 0
FcgidMaxProcessesPerClass 16
FcgidMaxProcesses 256
FcgidMaxRequestLen 536870912

Решено.

AddHandler fcgid-script .fcgi
FcgidConnectTimeout 60
FcgidMaxRequestLen 1073741824

Похожие статьи

Добавить комментарий

Кнопка «Наверх»