Ошибка создания директории при обновлении WP несмотря на права доступа 777
Я пытаюсь обновиться до WP 3, но получаю странную ошибку при попытке это сделать:
Скачивание обновления с http://wordpress.org/wordpress-3.0.4.zip.
Распаковка обновления.
Не удалось создать директорию: /my/path/web/wp-content/upgrade/wordpress-3.tmp
Установка не удалась
Странность в том, что директория upgrade
имеет права доступа 777. Я выполнил команду chmod -R 777 upgrade/
и когда делаю ls
, вижу что upgrade
доступна для записи всем. Я уверен, что работаю с правильной директорией, потому что если я удаляю upgrade
, получаю другую ошибку.
Есть идеи, почему это происходит?

Если вы не можете создавать директории даже с CHMOD 777, это может означать, что ваш локальный FTP-пользователь не имеет прав на запись файлов на вашем сервере. Чтобы исправить это, попробуйте отредактировать файл vsftpd.conf и убедитесь, что параметр write_enable установлен в значение YES.
Редактируем файл vsftp.conf
sudo vim /etc/vsftpd.conf
затем раскомментируйте существующую строку (или установите её значение в YES)
write_enable=YES

Там есть задержка, прежде чем они позволят тебе это сделать, приятель.

Какой пользователь владеет каталогом? Попробуйте изменить владельца каталога (CHOWN) на пользователя, под которым работает ваш веб-сервер (скорее всего, это "apache").
Обычно это выглядит так:
chown apache:apache ваш/путь/к/upgrade
Но в вашем случае команда может отличаться в зависимости от настройки сервера.
По какой-то причине (я не опытный администратор серверов), владение каталогом может вызывать проблемы с правами доступа, даже если права установлены в 777.

Владелец — пользователь jason
. Я уже пробовал изменить владельца своей директории на www-data
(пользователя Apache), но это не помогло.

@Jason Swett Хм... а ты менял группу при смене владельца? Обновление (в конечном итоге) просто использует mkdir для создания директории, так что ты можешь протестировать любые изменения прав или групп, создав простой скрипт с командой mkdir и проверяя его через браузер, пока не заработает.

Возможно, это проблема с safe_mode в PHP. Он доставил мне немало хлопот при работе с загрузками в автоматически создаваемые папки, и я подозреваю, что здесь может быть аналогичная ситуация.
Если этот режим активирован, пожалуйста, зайдите в вашу cPanel, Plesk Panel, обратитесь к системному администратору, попробуйте отключить его и повторите попытку.

При попытке обновления WordPress я столкнулся с ошибкой «Не удалось создать директорию». Я поискал решения и нашел несколько рекомендаций, которыми поделюсь с вами, а также расскажу, что в итоге помогло лично мне.
Первый способ: перейти в папку wp-content → upgrades, удалить её, затем создать заново и установить права 777 (также можно временно установить права 777 на всю папку /wp-content). После завершения установки верните права обратно на 755.
Второй способ: отключить все плагины или хотя бы все плагины безопасности.
Третий способ: выполнить ручную установку обновлений.
Поскольку это был первый раз, когда я столкнулся с ошибкой при обновлении, я решил попробовать отключить только последний установленный плагин безопасности под названием AskApache (не меняя никаких прав доступа). После этого обновление прошло без каких-либо проблем.

У меня была такая же проблема - не получалось обновить плагины или темы. Также я не мог загружать изображения, но мог создавать новые записи. Как оказалось, проблема была в нехватке места на диске - после удаления некоторых резервных копий всё снова заработало. Я использую бесплатный хостинг, и в cPanel было указано, что я далёк от исчерпания дискового пространства, поэтому изначально я даже не рассматривал этот вариант решения проблемы.

Кто ваш веб-хостинг? Права собственности на новые директории могут быть проблемой у некоторых (дешёвых) хостинг-провайдеров, и вы не сможете изменить их без их помощи.
И не оставляйте никакие директории с правами 777. Для WordPress максимально допустимые права — 755.

У меня была такая же проблема, и вот как я её решил:
Пользователь, который не может создать директорию — это FTP-пользователь, используемый для загрузки. В безопасном окружении можно разрешить вход root через FTP. Но — обязательно отключите root для FTP после этого. Не забудьте.
В моей установке (Ubuntu 16.04) оказалось две директории wp-content/plugins — не спрашивайте почему. usr/share/wordpress/wp-content/plugins и var/lib/wordpress/wp-content/plugins. Убедитесь, что обе директории доступны для записи FTP-пользователем.
