Диагностика проблем с загрузкой больших файлов в WordPress
При загрузке больших файлов (например, видео, архивов, бэкапов) в WordPress часто возникают ошибки: "Превышен максимальный размер файла" или "Ошибка HTTP". Это связано с ограничениями PHP и сервера, а также с настройками самого WordPress. Чтобы понять, в чем причина, проверьте:
- Параметры
upload_max_filesizeиpost_max_sizeвphp.ini; - Максимальное время выполнения скрипта
max_execution_time; - Максимальный размер запроса в настройках сервера (например, в
nginx.confили.htaccessдля Apache); - Настройки WordPress в разделе медиафайлов;
- Наличие ошибок в логах сервера и PHP.
Пошаговое решение: увеличиваем лимиты загрузки
1. Проверяем текущие лимиты через PHP
<?php
phpinfo();
?>Создайте файл phpinfo.php в корне сайта с этим кодом и откройте его в браузере. Найдите значения upload_max_filesize, post_max_size, max_execution_time.
2. Правим php.ini (если есть доступ)
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300
max_input_time = 300
memory_limit = 256MПосле изменения перезапустите сервер.
3. Вариант с .htaccess (для Apache)
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value max_execution_time 300
php_value max_input_time 300Добавьте этот код в корневой .htaccess.
4. Настройка wp-config.php (ограниченно)
@ini_set('upload_max_size' , '128M');
@ini_set('post_max_size', '128M');
@ini_set('max_execution_time', '300');Добавьте в начало файла wp-config.php.
5. Проверка настроек сервера (nginx)
client_max_body_size 128M;Добавьте в конфигурацию nginx и перезапустите сервер.
6. Применение в WordPress
Иногда WordPress ограничивает размер загрузки самостоятельно. Чтобы проверить, добавьте код в файл темы functions.php:
function set_custom_upload_size_limit( $size ) {
return 134217728; // 128 МБ в байтах
}
add_filter( 'upload_size_limit', 'set_custom_upload_size_limit', 20 );Как проверить, что решение сработало
- Зайдите в админ-панель WordPress в раздел Медиа > Добавить новый файл. В нижней части формы загрузки увидите надпись "Максимальный размер загружаемого файла" — она должна показывать новое значение (например, 128 MB).
- Попробуйте загрузить файл размером близким к новому лимиту.
- Если возникнет ошибка, проверьте логи PHP и сервера.
Частые ошибки при настройке лимитов загрузки
- Изменения не применяются: часто из-за отсутствия перезапуска веб-сервера или настройки переопределяется на уровне хостинга.
- Конфликты настроек:
post_max_sizeдолжен быть больше или равенupload_max_filesize, иначе загрузка не пройдет. - Неверный синтаксис в
.htaccessили конфигурациях: может привести к ошибкам 500. - Ограничения на стороне хостинга: некоторые провайдеры не позволяют менять эти параметры.
Практические советы по безопасности и производительности
- Не устанавливайте слишком большие значения без необходимости — это повышает риск DoS-атак и нагрузку на сервер.
- Для загрузки больших файлов используйте FTP или специализированные плагины с поддержкой chunked upload.
- Ограничьте типы файлов для загрузки через фильтры WordPress и настройки сервера.
- Регулярно очищайте временные папки, чтобы избежать переполнения диска.
Сравнение способов увеличения лимитов загрузки
| Метод | Плюсы | Минусы |
|---|---|---|
Правка php.ini | Надежный, глобальный эффект | Требует доступа к серверу, перезапуск |
.htaccess | Просто для Apache, быстро | Не работает на nginx, может вызвать ошибки |
wp-config.php | Легко внедрить, не нужен доступ к серверу | Ограниченный эффект, зависит от настроек сервера |
| Настройка nginx | Обязательна для nginx, эффективна | Требуется доступ к серверу и перезапуск |