Не удается загрузить изображения из-за ошибки прав доступа
По какой-то причине, когда я пытаюсь загрузить изображение в мой блог, я получаю сообщение об ошибке, говорящее, что WordPress не может создать папку в соответствующей директории (wp-content/uploads/2010/09), и спрашивает, есть ли права на запись у родительской папки. У родительской папки действительно есть права на запись. Я попробовал создать папку вручную, но всё равно появляется то же сообщение об ошибке.

@Lea,
Эта ошибка возникает, когда PHP (WordPress) не может записать в файл. Это происходит из-за отсутствия прав на запись или если пользователь или группа, под которыми работает PHP (WordPress), не имеют разрешения на запись в файл.
Права 755 позволят WordPress записывать файлы, когда PHP работает под именем пользователя на большинстве общих хостинг-планов.
Некоторые FTP-программы позволяют изменить пользователя и группу, назначенные для папок. Вы также можете внести эти изменения с помощью файлового менеджера в Cpanel.
Папки должны иметь то же имя пользователя, что и ваша учетная запись Cpanel.
В некоторых серверных окружениях требуется установить права 777, чтобы PHP получил доступ на запись. Однако это небезопасно в среде общего хостинга. Вы можете временно изменить права на 777, чтобы проверить, позволит ли это загружать фотографии, но ОБЯЗАТЕЛЬНО ВЕРНИТЕ ИХ НА 755 ПОСЛЕ ЗАВЕРШЕНИЯ.
Ваш хостинг-провайдер также может помочь в этой ситуации.

Эта проблема встречается довольно часто. Я тоже сталкивался с ней некоторое время назад. В моем случае у всех нужных директорий были права 777. Вот мое решение, а также ряд других методов, которые я пробовал:
- В моей ситуации нужно было убедиться, что у FTP-аккаунта, который я использовал для WordPress, были права на чтение/запись/исполнение. По непонятной причине, права оригинального аккаунта были сброшены, возможно, хостингом или чем-то ещё. Мы так и не смогли выяснить, что вызвало это изменение. Используя админ-аккаунт, мы снова смогли загружать изображения без проблем.
Эти советы взяты из обсуждения в поддержке WordPress для версии 2.5 (вы можете перейти по ссылке для получения дополнительной информации по любому из пунктов):
- Убедитесь, что вы загрузили все файлы WordPress корректно.
- Очистите кэш браузера и перезапустите его.
- Обновите Adobe Flash до последней версии (особенно пользователи Linux!).
- Отключите ваши плагины и проверьте, появятся ли кнопки. Если да, включайте их по одному, пока они снова не исчезнут.
- Обновите все ваши плагины.
- Популярный плагин Bad Behavior ломает загрузчик. Обновите его до версии 2.0.14 (или новее).
- mod_security может вызывать проблемы. Отключите его, чтобы проверить, в нём ли дело.
- Попробуйте изображение с меньшими размерами в пикселях. Размер файла не так важен, как ширина и высота изображения.
- Иногда проблема в самом изображении. WordPress использует стандартные PHP-функции для работы с изображениями из библиотеки "GD". У GD есть проблемы с определенными типами изображений. Один из таких типов — изображения в градациях серого. Если ваше изображение черно-белое или в градациях серого, убедитесь, что оно полноцветное.
- В WordPress 2.6 появилась новая проблема при использовании кастомной директории для загрузки файлов. Загрузка будет работать, но ссылка/превью будут некорректными, и изображение не отобразится.
- Есть ли у вас кастомные настройки на странице Настройки->Разное? Если да, убедитесь, что они верны. Директория загрузки не должна начинаться со слеша (uploads вместо /uploads), а URL не должен заканчиваться слешем.

Это помогло мне: я вошел в WordPress под именем пользователя, которое создал при установке, вместо моего оригинального имени пользователя cPanel, у которого были правильные разрешения на моем аккаунте. Я исправил проблему, создав нового администратора WordPress с тем же именем пользователя и паролем, что и у моего пользователя cPanel. Вышел из системы и снова вошел под этим пользователем — проблема решена.

Попробуйте загрузить изображения с помощью FTP-клиента и проверьте, возникает ли та же ошибка.
Также проверьте, не создаёт ли какой-либо плагин автоматически миниатюру загружаемого изображения в другой директории.
Ещё можно попробовать изменить стандартную папку для загрузки файлов, если ошибка продолжает появляться.
Надеюсь, что-то из этого поможет (:

Одна вещь, которая пришла мне в голову — WordPress может сообщать, что не может скопировать файл в /wp-content/upload
, даже если все права настроены правильно... если
upload_max_filesize
в php.ini
слишком мал (например, 2 МБ, а вы пытаетесь загрузить файл размером 3,5 МБ)!
Надеюсь, это поможет всем тем, у кого права настроены верно, но загрузка всё равно не работает!

В моём случае это было вызвано неправильным значением опции upload_path
в таблице wp_options
.
Решение состояло в том, чтобы очистить поле опции. Это заставляет WordPress использовать путь для загрузок по умолчанию (<корень_wp>/wp-content/uploads
)
MySQL-запрос для этого:
UPDATE wp_options SET option_value = '' WHERE option_name = 'upload_path'
