WordPress не может записать файл: что проверить до chmod
Если WordPress не может записать файл, сначала выясните этап отказа: приём загрузки PHP, временное хранение или сохранение в каталоге сайта. Затем проверьте конкретный путь, пользователя процесса и доступное место. Назначение одинаковых расширенных прав всему wp-content не объясняет причину и может открыть лишний доступ.
Одна фраза скрывает несколько операций
Посетитель загружает изображение, PHP принимает данные, приложение определяет место хранения и пытается сохранить результат. При обновлении компонента цепочка другая: загрузка архива, подготовка файлов, замена нужного каталога. Сообщение интерфейса может описывать итог, не называя точную операцию, которая сорвалась.
Начните с записи действия и полного текста ошибки. Укажите время, тип файла, повторяется ли отказ на небольшом безопасном изображении и затрагивает ли он только загрузки или ещё обновления. Не переносите вывод с одной операции на все возможности CMS. Если обновление удалось, это ещё не подтверждает запись в папку изображений.
Код PHP полезнее догадки по переводу
В списке констант PHP UPLOAD_ERR_CANT_WRITE имеет значение 7 и означает невозможность записи на диск. Отсутствию временной папки соответствует другая константа — UPLOAD_ERR_NO_TMP_DIR, значение 6. Превышение ограничения загрузки тоже выделено отдельно. Эти различия помогают не лечить любую ошибку изменением прав целевого каталога.
Если есть доступ к диагностике приложения, сохраните код и относящуюся к попытке строку журнала. Не публикуйте подробный журнал вместе с секретами конфигурации. Когда панель показывает только общий текст, передайте точное время обращения поддержке: это позволит найти событие без многократных проб загрузить большой файл.
Разделите маршрут файла на контрольные точки
| Точка маршрута | Что фиксировать | Какой вопрос решить | Чего пока нельзя заключить |
|---|---|---|---|
| Приём запроса | Код загрузки PHP и размер безопасной пробы | Принят ли файл полностью | Что каталог медиатеки исправен |
| Временное хранение | Фактический временный путь и контекст процесса | Есть ли доступное место подготовки | Что поможет смена прав wp-content |
| Создание папки загрузок | Полный целевой путь и доступ к родителю | Кто вправе создать новый каталог | Что прежняя папка имеет те же настройки |
| Запись готового файла | Владелец, группа и разрешения конкретного места | Может ли нужный процесс записывать сюда | Что запись должна быть разрешена всем |
| Обновление компонента | Стадия остановки и затронутый каталог | Какой участок операции требует восстановления | Что требуется открыть на запись весь сайт |
Таблица — рабочая карта для администратора, а не результат проверки определённого сервера. Не каждую клетку может заполнить владелец через панель. Неизвестный пользователь процесса или путь лучше обозначить как неизвестный и запросить у провайдера, чем подставлять типовое имя из случайной инструкции.
Почему 755 у двух папок даёт разный результат
В руководстве WordPress по правам сказано, что подходящая схема зависит от размещения. Для записи важны не только числовые разрешения, но и принадлежность файла либо группы пользователю, от которого работает WordPress. Учётная запись загрузки файлов может отличаться от процесса приложения.
Поэтому вопрос «какие цифры поставить» без владельца и контекста неполон. Одинаковая запись режима на двух серверах может давать разный доступ разным процессам. Уточните также, какой путь действительно используется приложением: исправление похожей папки в старой копии проекта никак не повлияет на текущую загрузку.
После переноса сравните владельца новых и старых каталогов в разрешённой администратору диагностике. Не меняйте владельца всего дерева только потому, что одна папка выглядит иначе. В рамках поддержки WordPress разумно согласовать нужную область записи и сохранить остальные ограничения.
Не забудьте временную папку и ограничения размещения
По описанию upload_tmp_dir в PHP, временный каталог должен допускать запись пользователем PHP. При некоторых настройках используется системное временное место; ограничения open_basedir также могут иметь значение. Смотреть следует конфигурацию того обработчика, который обслуживает сайт, а не только отдельного запуска PHP в другом окружении.
Попросите хостера проверить место, квоту аккаунта и доступность нужных каталогов. Факт, что в панели есть свободный объём, ещё не отвечает на вопрос о конкретной файловой системе или лимите услуги. Если причина в ограничении ресурса, добавление разрешений не создаст недостающее место и не устранит сам лимит.
Безопасный порядок исправления
- Сохраните сведения об ошибке и пригодную копию затрагиваемых файлов до изменения настроек.
- Установите этап остановки и используемый путь по коду, журналу или данным хостера.
- Проверьте пользователя процесса, принадлежность и доступ к этому месту.
- Исправьте подтверждённую причину в минимальной нужной области, без перебора разрешений всего дерева.
- Повторите исходную операцию безопасной пробой и проверьте, не появился ли лишний публичный доступ.
Не включайте запись для всех пользователей как постоянное решение. Если такая попытка уже предпринималась, сообщите об этом администратору: после восстановления работы потребуется вернуть согласованную схему доступа. Успешная загрузка при избыточных разрешениях подтверждает только возможность записи, а не безопасность конфигурации.
Что считать завершённым ремонтом
Для медиатеки проверьте сохранение нового файла, его появление в интерфейсе и открытие ожидаемого результата на странице. Для обновления отдельно проверьте завершение операции и работу изменённого компонента. Удалять случайные каталоги в поисках свободного места не нужно: сначала установите их назначение и наличие копий.
Если неисправность повторяется при следующем переносе или выпуске, добавьте проверку прав и путей в процедуру развёртывания. Здесь пригодятся сопровождение сервера и согласованный перенос проекта. В передаваемом описании должны остаться причина, исправленный участок и критерий повторной проверки, а не только отметка «поставили права — заработало».
Вопросы и ответы
WordPress unable to create directory uploads: что проверить?
Сначала определите полный путь новой папки и пользователя, который пытается её создать. Затем проверьте доступ к родительскому каталогу и ограничения размещения. Права существующей соседней папки не подтверждают возможность создания новой.
Что значит wp-content directory not writable?
Это сообщение о недоступной записи в указанное место для выполняемой операции. Причину нужно уточнить по пути, владельцу и контексту процесса, а не только по числовому режиму. Открывать всё дерево для записи всем пользователям не требуется.
Почему WordPress не может создать каталог после переноса?
Сравните используемый путь и пользователя приложения с новым размещением. Перенос файлов сам по себе не подтверждает сохранение подходящей схемы доступа. Если ошибка возникает ещё при временном приёме файла, проверять нужно также этот этап.
Читайте также
Фавикон не виден в поиске: проверяем файл и доступ робота
ПоддержкаБраузер скачивает файл с непонятным именем: что проверить
ПоддержкаБелый экран WordPress: что проверить до переустановки
ОбзорыEmDash 1.0: что проверить перед переносом сайта с WordPress
БезопасностьФайл удалён, но ссылка работает: где остались копии
БезопасностьКак скрыть данные на скриншоте и проверить готовый файл