Thank you for reading this post, don't forget to subscribe!
Директива upload_max_filesize в php.ini
В конфигурационном файле php.ini с помощью директивы upload_max_filesize
установлен максимальный размер загружаемых файлов на сервер.
1 2 |
<strong>upload_max_filesize</strong> = 50M |
Учтите, что в PHP так же установлен максимальный размер POST запросов с помощью директивы post_max_size
, который должен быть больше или равен максимальному размеру загружаемых файлов:
1 2 |
<strong>post_max_size</strong> = 50M |
В зависимости от конфигурации сервера, новые значения могут вступить в силу сразу после внесения изменений, или же потребуется перезапустить веб-сервер или PHP интерпретатор.
Директивы PHP через .htaccess
Если у вас нет доступа к файлу конфигурации PHP, вы можете попробовать установить значения с помощью файла .htaccess веб-сервера Apache. Если вы работаете с Apache, то в корневой директории с вашим сайтом WordPress наверняка уже есть файл .htaccess, в который вы можете добавить следующие значения:
1 2 3 |
php_value upload_max_filesize 20M php_value post_max_size 20M |
Изменения в файлы .htaccess как правило вступают в силу сразу после сохранения.
Директивы PHP через nginx.conf
Для веб-сервера nginx к сожалению нет возможности использовать файл .htaccess, но если вы ищите возможность изменять значения php.ini с помощью конфигурационного файла nginx, это делается через директиву fastcgi_param
(в случае если PHP настроен как FastCGI клиент):
1 2 3 |
fastcgi_param PHP_VALUE upload_max_filesize=20M; fastcgi_param PHP_VALUE post_max_size=20M; |
Кстати в nginx есть директива client_max_body_size
, которая отвечает за максимальный размер данных передаваемых в HTTP запросах. Она тоже влияет на максимальный размер загружаемых файлов. Для вступления в силу изменений конфигурационного файла nginx, веб-сервер необходимо перезагрузить.
client_max_body_size 50m;
Проблемы с fastcgi
Может быть проблема при загрузки файлов свыше 128 кб, т.е. файлы не загружаются и в результате получаем ошибку 500 (Internal Server Error),
да же если ваши настройки PHP настроены на загрузку больших файлов.
Что мы делаем что бы убедится связано ли это с работой mod_fcgi.
Смотрим лог сервера, в момент загрузки файла через ваш сайт, файл должен быть больше 128 Кб
tail -f /var/www/user1/logs/test.t.error.lo | grep mod_fcgid
Если вы увидите подобную ошибку
[warn] [client IP] mod_fcgid: HTTP request length 136469 (so far) exceeds MaxRequestLen (131072), referer: http://.…
то значить модуль mod_fcgid ограничивает загрузку больше 128 кб
Решение простое, увеличиваем этот лимит на больший.
Открываем основной конфиг mod_fcgi
/etc/httpd/conf.d/fcgid.conf
и увеличиваем максимальный размер, например в 50 мб:
FcgidMaxRequestLen 50000000