Проблема с разрешениями при обновлении Wordpress до 3.2 через интерфейс администратора

Я использую сервер 10.04. Я пытаюсь обновить Wordpress через интерфейс администратора. У меня работает сервер vsftpd, и он принимает локальные соединения. Для моих учетных данных FTP я предоставил следующее:

  • Имя хоста: 127.0.0.1:21
  • Имя пользователя и пароль: предоставленный пользователь имеет доступ на запись к структуре каталогов /var/www.
  • Использование простого ole FTP, небезопасно.

Когда я отправляю обновление, через некоторое время (1-2 минуты) возвращается следующее сообщение:

Downloading update from http://wordpress.org/wordpress-3.2.zip…

Unpacking the update…

Could not create directory.: /var/www/wordpress/wp-content/upgrade/wordpress-3.tmp

Installation Failed

Я предполагаю, что это проблема с разрешениями, но я не смог понять это. Даже установка каталогов chmod 777 не работает. Есть идеи? Спасибо!

Изменить: Тестирование с ftp 127.0.0.1 дает следующее:

$ ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.2.2)
Name (127.0.0.1:wpuser): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir /var/www/wordpress/wp-content/upgrade/test/
550 Permission denied.

Возможно, что-то не так с моими настройками vsftpd? Вот файл vsftpd.conf:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

Редактировать Часть 2:

Я пока не могу ответить, потому что мне не хватает репутации. Вот как я это исправил:

Я наконец исправил проблему, хотя это может быть не лучшим решением. Имейте в виду, что служба FTP недоступна для внешнего Интернета.

Поэтому Wordpress пытается использовать FTP для создания каталогов и файлов, необходимых для обновления. Это происходит и при загрузке плагинов или тем. Поскольку я также не мог создать каталог по FTP, я решил попробовать следующее в конфигурации vsftpd:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

Я перезапустил сервер и все заработало. Теперь я предполагаю, что это может быть какая-то проблема безопасности, но учетная запись anon отключена (anonymous_enable=NO).

Кроме того, в качестве ответа и на другие предложения о разрешениях для каталогов, вот что я попробовал с разрешениями на сервере.

  • Все WordPress каталоги 775
  • Все файлы WordPress 664
  • Владелец: мой пользователь, группа: пользователи
  • Пользователь www-data добавлен в группу пользователей (просто тест, очевидно, не работает)

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

Я приветствую любые комментарии по этому вопросу.

4 ответа

chown -R ftpuser.ftpuser /var/www/yourwebsite/wp-content/upgrade/

chmod 755 /var/www/yourwebsite/wp-content/upgrade/

Этот документ может помочь вам понять, как следует применять разрешения для ваших файлов / папок, чтобы Wordpress работал без хлопот.

По моему личному опыту, предоставление 755 разрешений для папки WordPress делает свое дело, но некоторые папки должны иметь 777 независимо от того, что говорит WordPress, некоторые плагины и / или обновления (даже для ядра WP) не будут работать, если эти папки не имеет 777 разрешений.

Цитируется из документа, который я упоминаю в верхней части этого ответа:

  1. Все файлы должны принадлежать фактической учетной записи пользователя, а не учетной записи пользователя, используемой для процесса httpd.
  2. Принадлежность группы не имеет значения, если только нет особых групповых требований для проверки разрешений процесса веб-сервера. Обычно это не так.
  3. Все каталоги должны быть 755 или 750.
  4. Все файлы должны быть 644 или 640. Исключение: wp-config.php должно быть 600, чтобы другие пользователи на сервере не могли его прочитать.
  5. Не нужно давать 777 каталогов, даже загружать каталоги. Поскольку процесс php выполняется как владелец файлов, он получает разрешения владельцев и может записывать даже в каталог 755.

Этот ответ: Общие правила работы с разрешениями для файлов будут полезны для лучшего понимания разрешений в системе на основе Ubuntu. Который - в случае локального сервера - не нужно будет получать доступ через FTP-клиент для выполнения задачи, но с использованием терминала.

Если вам нужна дополнительная информация об этом, не стесняйтесь оставлять комментарии. Мой блог WP может быть доступен через http://geppettvs.x10.mx/blog и я сталкивался с этой проблемой много раз в прошлом для удаленных и локальных серверов.

Глоссарий для моего ответа:

  1. Локальный сервер должен рассматриваться как компьютер, к которому я могу подключить клавиатуру или мышь, чтобы напрямую взаимодействовать с его ОС.
  2. Удаленный сервер - это компьютер, который физически не находится передо мной, и я не могу подключить к нему клавиатуру или мышь для работы с операционной системой компьютера.

Вы смотрели на свободное место на диске? Это была моя проблема при попытке обновить некоторые плагины. Я увеличил квоту, и проблема была исправлена.

Вы пытались изменить владельца и группу каталога. В общем-то /var/www должен иметь www-data как владелец и группа. Смена владельца и группы /var/www/wordpress... пользователю ftp, которого вы используете. Команда выглядит так, как показано ниже,

chown -R www-data:www-data /var/www/wordpress

А также попробуйте вместо этого использовать IP-адрес 127.0.0.1

Другие вопросы по тегам