#Что происходит и как определить неисправность
Загрузка большого файла в медиатеку WordPress может обрываться из-за лимитов PHP, веб-сервера, внешнего прокси, нехватки места или обработки изображений. Не следует бездумно увеличивать upload_max_filesize: эффективный предел зависит от нескольких независимых ограничений и допустимых типов файлов.
#Вероятные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Размер запроса выше ограничения PHPРазмер запроса выше ограничения PHP. В панели медиатеки написано о максимальном размере; PHP отвечает ошибкой загрузки | В панели медиатеки написано о максимальном размере; PHP отвечает ошибкой загрузки | Сравнить upload_max_filesize и post_max_size нужного веб-пула. |
| Веб-сервер или CDN отклоняет тело запросаВеб-сервер или CDN отклоняет тело запроса. HTTP 413 до выполнения PHP, в PHP-журнале ничего нет | HTTP 413 до выполнения PHP, в PHP-журнале ничего нет | Проверить client_max_body_size/LimitRequestBody и лимиты провайдера. |
| Недостаточно места или памяти для обработкиНедостаточно места или памяти для обработки. Ошибка появляется ближе к завершению, журналы содержат disk full или image library | Ошибка появляется ближе к завершению, журналы содержат disk full или image library | Проверить свободное место, временный каталог и память. |
#Пошаговая диагностика и исправление
- Запишите размер, тип и место сбояВ WordPress откройте Медиафайлы → Добавить новый, посмотрите указанный максимальный размер. На тестовом файле известного формата попробуйте маленький файл и файл чуть больше проблемного. Запишите размеры, сообщение и время; не используйте чужие изображения без разрешения.
- Определите код ответа в браузереНажмите F12 → Сеть и повторите загрузку. Найдите запрос в медиа-API/admin-ajax.php, запишите HTTP 413, 500 или другой код. Если запрос блокирует CDN, сведения о нём могут быть только в панели внешнего провайдера.
- Проверьте пределы PHP именно сайтаВ панели управления выбранным доменом найдите upload_max_filesize, post_max_size и memory_limit для реально используемой версии PHP. post_max_size обычно должен быть выше upload_max_filesize с запасом для других полей формы; установка больших значений без оценки RAM и трафика рискованна.
- Проверьте ограничения Nginx/ApacheЕсли HTTP 413 формирует Nginx, администратор изучает client_max_body_size для нужного server/location; если Apache — соответствующие директивы. Перед изменением сохраните конфигурацию и протестируйте синтаксис. При управляемом хостинге уточните ограничение у поставщика, не пытайтесь обойти его прямой публикацией файла.
- Проверьте временный каталог и свободное местоПри доступе к серверу выполните df -h, затем проверьте лимит inode при необходимости. Значение 100% для раздела с PHP upload_tmp_dir или wp-content/uploads объясняет сбой. Не очищайте /tmp целиком, сначала определите файлы именно этого сайта.
- Только чтение заполненности файловых систем LinuxLinux · Терминал (Bash)Только проверкаТолько чтение заполненности файловых систем Linux.
df -h
- Проверьте права на uploadsВ файловой панели откройте wp-content/uploads/год/месяц и убедитесь, что PHP может создавать файлы в целевом каталоге. Если маленькие файлы загружаются, а большие нет, права обычно не первопричина. Не выдавайте 777 всей папке.
- Отличите загрузку от обработки изображенияЕсли файл попал на диск, но WordPress не создаёт миниатюры, проверьте журнал ошибок PHP, расширения GD/Imagick и память. Для большого изображения могут понадобиться ограничения по размерам пикселей или предварительное уменьшение изображения в редакторе.
- Увеличивайте лишь обоснованный лимитНа тестовом домене измените конкретный предел и примените конфигурацию через панель/перезагрузку нужного пула. Повторите загрузку и проверьте расход ресурсов. Не открывайте возможность загрузки исполняемых типов файлов ради обхода фильтра.
- Проверьте рабочую цепочкуЗагрузите разрешённый файл, откройте его URL и проверьте миниатюры, затем убедитесь, что не изменились ограничения для других пользователей. При ошибке верните предыдущее значение и изучите код ответа/журнал.
#Как проверить результат
Медиатека принимает файл в установленном безопасном пределе, в каталоге появляется оригинал и нужные миниатюры; сайт не начинает возвращать 413/502 на других запросах.
#Если не помогло
Для 413 проверяйте прокси/веб-сервер, для 500 — PHP/библиотеки изображений, для нехватки места — разделы диска. Не обойти лимит простой установкой другого плагина.