it-roy-ru.com

Распаковка обновления ... Не удалось создать каталог. Wordpress

Когда я устанавливаю плагины nextgen-gallery. Это сообщение об ошибке появляется 

Downloading update from https://downloads.wordpress.org/plugin/nextgen-gallery.Zip…

Unpacking the update…

Could not create directory.

Как я могу исправить эту проблему?

11
BigTech

Это проблема с разрешениями. Убедитесь, что каталог доступен для записи Apache. Плагины распаковываются в каталог wp-content/plugins, поэтому я сначала попытался бы записать в каталог как Apache:

Sudo -u Apache touch /path/to/wp-content/plugins/test.txt

Установите разрешения соответственно, чтобы исправить проблему. Вы можете прочитать о разрешениях здесь: http://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions

Вы можете прочитать о правильной схеме доступа к файлам для Wordpress здесь: http://codex.wordpress.org/Changing_File_Permissions#Permission_Scheme_for_WordPress

22
skrilled

Ответ @skrilled и @ knutole был великолепен, но я обнаружил, что при попытке решить проблему с папкой плагинов все было в порядке, и ответ не работал для меня. 

Если у кого-то еще есть эта проблема, попробуйте также посмотреть папку обновлений. Эта папка (из того, что я вижу) используется как папка для хранения временных файлов, когда запускаются обновления WP или обновления плагинов. 

Если вы просто получаете сообщение «Не удалось создать каталог» и путь не указан, это может означать, что в папке обновлений.

18
damienoneill2001

для людей nginx 
если у вас установлен php-fpm, вы должны сообщить ему, что его пользователь и группа - nginx. /etc/php-fpm.d/www.conf. найдите пользователя, который назначен Apache по умолчанию, и измените его на nginx. и сделай это для группы. затем выполните эту команду:

Перезапуск службы Sudo php-fpm


также внутри вашего каталога WordPress выполните эти команды

Судо чоун nginx: nginx * -R 
Sudo usermod -a -G nginx username

измените имя пользователя на ваше текущее имя .

тем не менее, вы должны применить права propper . запустить эти команды в вашем каталоге WordPress

Судо найти. -type f -exec chmod 664 {} + 
Судо найти. -тип d -exec chmod 775 {} +
3
Hassan Gilak

Если вы используете vsftpd в качестве FTP-сервера и включили пассивные подключения, вам необходимо добавить pasv_promiscuous=YES в /etc/vsftpd/vsftpd.conf.

1
Meekohi

Я использую Nginx с Wordpress. Я удалил папку обновления в wp-content, а затем снова запустил обновление из графического интерфейса WordPress. Я заметил, что пользователь linux для созданной папки обновления был www-data. Затем я сделал {Sudo chmod -R www-data: www-data.} Снова запустил обновление из графического интерфейса, и оно заработало. 

Возможно, нужно изменить разрешения для большинства папок, чтобы они не могли быть изменены с помощью www-данных, но я это выясню завтра. 

0
Andrew Jennings

(Пере) установка разрешений через ftp для меня тоже ничего не изменила. SSH недоступен, поэтому мне пришлось войти в панель управления (в моем случае directadmin), в диспетчере файлов, где я мог «Сбросить владельца» в «Сброс владения файлом» в каталоге/wp-contents.

0
Dirk

У меня была похожая проблема. Началось с того, что я пытался обновить плагин при перенастроенной установке WP. Я не получил его, все мои разрешения были точно так же, как старый сервер. В моей ситуации я начал понимать, что не так много работает должным образом. Я не мог установить/удалить плагины или темы, так как при загрузке мультимедиа произошла бы ошибка. Затем я нашел исправление с помощью некоторых исследований.

Если у вас все еще есть эта проблема, и изменение разрешений DID НЕ устранило проблему, попробуйте это:

Зайдите в свою панель управления хостингом и найдите настройки хостинга, где бы вы не могли редактировать свои настройки скриптов. В Plesk (как в моем примере) это будет в разделе «Сайты и домены». Нажмите на свое доменное имя внизу. На следующем экране, где написано "Поддержка PHP (запустить как ...", измените раскрывающийся список с "Модуль Apache" на "Приложение FastCGI". Все должно быть исправлено сейчас!

FastCGI

0
Ce.

Проблема с разрешением, убедитесь, что у Apache (www-data) есть права на запись.

0
Sanjok Gurung

Все вышеперечисленное прекрасно, но я думаю, что вы упустили простейший вопрос. Ваш сайт использует больше места, чем выделено, и поэтому он сломан. Wordpress делает больше файлов, как это используется. Если вы находитесь на пороге перехода, простой ночной выпуск, где вы ничего не сделали, невозможен. Ложись спать, все хорошо. Утром сайт сломался.

Я владею своими сайтами, поэтому захожу в реселлерскую часть Hostmonster или Hostgator (у меня есть сайты на обеих хостинговых платформах) и перераспределяю больше места, и проблема обычно уходит. Попробуйте сначала, или посмотрите на это, прежде чем возиться с разрешениями. Если вы изменили разрешение и возникла проблема, это могут быть разрешения, в противном случае проверьте это в первую очередь.

0
David Cox

Скорее всего, если вы настроили его правильно, http-сервер, связанный с вашим сайтом WordPress, принадлежит группе www-data. Вот как нужно правильно его настроить.

Попробуйте members www-data и ps aux | grep www-data, чтобы быть уверенным. В последней команде вы должны увидеть в последних столбцах nginx или Apache.

В этом случае вам просто нужно установить эту группу в каталог

Sudo chgrp -R www-data <your_wordpress_root_dir>/

а затем добавить полные права доступа группы к такому каталогу

Sudo chmod -R g+rwx <your_wordpress_root_dir>/

Теперь работает отлично :)

0
João Pimentel Ferreira