Краткий ответ
Ошибка при загрузке файла в WordPress чаще всего возникает из-за ограничений PHP на размер файла. Решение, увеличить значения `upload_max_filesize`, `post_max_size` и `memory_limit` в `php.ini` или через `.htaccess`/`wp-config.php`. После изменения перезапустите PHP и проверьте новые лимиты в WordPress.
Как проявляется проблема
- Сообщение «Загруженный файл превышает максимальный размер загрузки»
- Загрузка доходит до 100%, но изображение не появляется в медиатеке
- Ошибка «HTTP error» при загрузке больших файлов
- Не удается установить плагин или тему, так как файл слишком большой
- В медиатеке отсутствуют изображения после загрузки
Частые причины
Лимит PHP `upload_max_filesize`
По умолчанию PHP часто разрешает только 2 МБ на файл. Если ваш файл больше, WordPress покажет ошибку.
Лимит PHP `post_max_size`
Это значение должно быть больше `upload_max_filesize`, так как оно охватывает весь POST-запрос, включая другие данные.
Недостаточный `memory_limit`
Обработка больших изображений может требовать больше памяти. Если лимит низкий, загрузка может прерваться без явного сообщения.
Ограничения на стороне хостинга
Некоторые хостинг-провайдеры не разрешают изменять лимиты PHP или ограничивают их. В этом случае необходимо обратиться в поддержку.
Модули безопасности (mod_security)
Редко, но может блокировать загрузку, если посчитает файл подозрительным. Тогда нужно обратиться к администратору сервера.
Пошаговое решение
- 1
Проверьте текущие лимиты
Откройте
Инструменты > Здоровье сайта, затем вкладкуИнформацияи разделСервер. Найдите значенияupload_max_filesize,post_max_sizeиmemory_limit. Запишите их, чтобы знать, насколько нужно увеличить. - 2
Увеличьте лимиты в `php.ini`
Если у вас есть доступ к файлу
php.ini(через cPanel или FTP), сделайте копию файла, затем найдите строкиupload_max_filesize,post_max_sizeиmemory_limit. Измените их на нужные значения, напримерupload_max_filesize = 64M,post_max_size = 128M,memory_limit = 256M. Сохраните файл и перезапустите PHP через панель управления хостинга, если такая опция доступна. Если нет, обратитесь в поддержку хостинга. - 3
Увеличьте лимиты через `.htaccess`
Если вы не можете изменить
php.ini, сделайте копию файла.htaccessв корне WordPress, затем добавьте строки:php_value upload_max_filesize 64M,php_value post_max_size 128M,php_value memory_limit 256M. Это работает только если хостинг разрешает директивыphp_value, например с mod_php. Если сайт после изменения покажет ошибку 500, восстановите копию файла. Сохраните и обновите страницу. - 4
Увеличьте лимит в `wp-config.php`
В
wp-config.php, перед комментарием/* That's all, stop editing! Happy publishing. */, добавьтеdefine('WP_MEMORY_LIMIT', '256M');. Это увеличивает лимит памяти WordPress, но не лимиты PHP для загрузки. Для полного решения используйте предыдущие шаги. - 5
Проверьте, применились ли изменения
После изменений снова откройте
Инструменты > Здоровье сайта > Информацияи проверьте, отображаются ли новые значения. Если нет, изменения не вступили в силу (возможно, требуется перезапуск PHP или хостинг не разрешает изменение). - 6
Очистите кеш и попробуйте снова
Очистите кеш браузера и кеш плагина кеширования (например, WP Super Cache, W3 Total Cache). Затем попробуйте снова загрузить файл. Если по-прежнему не удается, проверьте, не превышает ли файл новый лимит.
- 7
Используйте FTP для больших файлов
Если проблема сохраняется, загрузите файл напрямую на сервер через FTP/SFTP-клиент в соответствующую папку (например,
wp-content/uploads). Учтите, что загрузка по FTP не проходит проверку WordPress и не регистрирует файл автоматически. Затем добавьте его в медиатеку с помощью плагина для импорта файлов с сервера или используйте как внешний файл.
Если ничего не помогает
Если вы изменили php.ini, .htaccess и wp-config.php, а лимиты не меняются, вероятно, хостинг имеет центральные ограничения. Обратитесь в поддержку хостинга и спросите, могут ли они увеличить upload_max_filesize и post_max_size для вашей учетной записи. Укажите, что вы используете WordPress, и назовите желаемые значения. В редких случаях проблема может быть и в правилах mod_security. Также проверьте, не поврежден ли файл и не слишком ли он велик для любой загрузки (например, видео на 2 ГБ). В этом случае сожмите его или используйте внешний сервис хранения.
Как избежать повторения
- Регулярно проверяйте лимиты PHP в `Инструменты > Здоровье сайта > Информация`.
- Используйте плагины для оптимизации изображений перед загрузкой (например, Smush, Imagify).
- Ограничьте размер файлов, которые вы разрешаете пользователям (например, в контактной форме).
- Следите за рекомендациями хостинга и при необходимости обновите тарифный план.
Когда лучше обратиться к специалисту
Если у вас нет доступа к серверным файлам или хостинг не разрешает изменения, обратитесь в IT-поддержку. Они могут изменить конфигурацию PHP или связаться с хостингом вместо вас.
Создание сайтов · Быстрые, SEO-оптимизированные многоязычные сайтыЧастые вопросы
Каков максимальный лимит загрузки в WordPress?
WordPress сам по себе не определяет лимит для медиафайлов; он зависит от конфигурации PHP. Часто это 2 МБ, но многие хостинг-провайдеры разрешают 64 МБ или больше. Вы можете увеличить его, если хостинг это позволяет.
Могу ли я увеличить лимит без доступа к `php.ini`?
Вы можете попробовать через `.htaccess`, если хостинг разрешает директивы `php_value`. Через `wp-config.php` можно увеличить только лимит памяти WordPress (`WP_MEMORY_LIMIT`), но не лимиты загрузки. Если не получится, обратитесь в поддержку хостинга.
Почему изображение загружается, но не отображается?
Возможно, загрузка прервалась из-за `memory_limit` или `post_max_size`. Проверьте лимиты и попробуйте снова. Также проверьте права доступа к папке `wp-content/uploads`.