Общий вопрос о разрешениях для файлов Linux: Apache и WordPress

17

Несколько недель назад я перешел с общего хостинга на VPS, и у меня возникли такие неприятные проблемы с разрешением в WordPress. Вы знаете, что вы можете загружать и обновлять плагины (и сам Wordpress) с панели администратора, но с тех пор, как я переехал, он начал просить меня мои учетные данные FTP, что довольно медленно, когда мне нужно обновить ~ 20 плагинов.

Я думаю, что это должна быть какая-то проблема. Я посмотрел, что файлы общедоступного хостинга Wordpress, все они принадлежат имени пользователя и группе kovshenin (kovshenin: kovshenin), а файлы - rw-r - r--, а каталоги - drwx-r-xr-x.

На моем VPS apache работает под apache: apache и мои файлы kovshenin: kovshenin. Что делать, чтобы сделать их доступными для чтения и записи как с помощью kovshenin, так и с apache?

Кроме того, я изменил разрешения на 0777 для всех файлов и папок моей установки wordpress, что позволило мне установить и удалить плагины без FTP, но когда я нажал на автоматическое обновление до WordPress 2.8.1, он все еще попросил меня FTP-аккаунт. Это проблема с wp или я что-то пропустил?

Спасибо.

Обновление. Мне удалось запустить id и id www-data на общедоступном хосте MediaTemple. Пользователь kovshenin находится в группе kovshenin, а www-данные находятся в групповых www-данных. Больше групп. Что за трюк?

Другое обновление. Я добавил пользователя apache в группу kovshenin, мои файлы Wordpress kovshenin:kovshenin с разрешениями rw-rw-r-- и drwxrwxr-x разрешений на каталоги, но что-то все еще не так. Пользователь apache может получить доступ к файлам и папкам, я могу использовать онлайн-редактор "Темы и плагины" в панели администратора Wordpress, я могу вносить изменения в файл .htaccess из Wordpress, но установка плагина/темы по-прежнему запрашивает меня для учетных данных FTP!

Любые идеи? Спасибо.

  • 0
    Вы говорите, что Apache работает под Apache: Apache может получить доступ к файлам WordPress с www-data: www-data? Если это так, то выясните, как это происходит, и настройте его, сделайте то же самое с kovshenin: kovshenin.
  • 0
    Нет. Www-data находится на общем хостинге, а apache работает под www-data. Пользователь apace на моем VPS и работает под пользователем и группой apache: apache.
Теги:
permissions

5 ответов

22
Лучший ответ

Что делать, чтобы сделать их доступными для чтения и записи как с помощью kovshenin, так и с apache?

  • Создайте новую группу, скажем "wordpress".
  • Добавьте в группу wordpress пользователей koveshenin и www-data.
  • Измените владельца группы всех файлов на wordpress (используя chgrp).
  • Удостоверьтесь, что все файлы совместимы с группой.
  • Установите бит разрешения g + s (setgid) во всех интересующих каталогах.
  • Убедитесь, что kovshenin и apache default umask включает в себя права на чтение и запись групп.

Второй последний шаг - это трюк. Это означает, что всякий раз, когда kovshenin или apache создает файл в этих каталогах, владелец группы будет установлен в wordpress (вместо kovshenin или apache).

  • 0
    Хорошо, это ближе, спасибо большое, но почему у пользователя www-data и kovshenin на учетной записи общего хостинга Media Temple нет дополнительных групп? Как называется этот трюк? ;)
  • 0
    Трудно сказать, но учетная запись общего хостинга может быть настроена с помощью phpsuexec.
Показать ещё 19 комментариев
1

Предполагая, что ваш каталог установки wordpress /var/www/html, чтобы массово изменить все файлы и каталоги на правильное использование разрешения:

sudo  find /var/www/html/ -type d -exec chmod 775 {} \;
sudo  find /var/www/html/ -type f -exec chmod 664 {} \;

Для массового изменения группы владельцев всего используйте:

sudo chgrp -R <desired_username>.<desired_groupname> /var/www/html
1

Вы можете предоставить право собственности на www-данные в соответствии с здесь.

Выполните следующую команду в каталоге WordPress (необходимо sudo):

sudo chown -Rf www-data *

Работает для Apache.

  • 1
    Это работает нормально, но тогда я не могу редактировать эти файлы с моим обычным пользователем, и это то, что меня пугает .. :(
  • 0
    Они все еще не принадлежат Ковшенину? Вы должны иметь возможность редактировать их, если они есть. Если нет, то вы можете попытаться сделать пользователя kovshenin членом группы, которой он принадлежит, и использовать newgrp, чтобы изменить группу на эту группу, прежде чем редактировать их.
Показать ещё 4 комментария
0

В настоящее время добавление define('FS_METHOD', 'direct'); в wp-config.php может сделать трюк. Не уверен, что это сработало бы в '09. См. здесь для моего аналогичного случая с использованием nginx. Я обнаружил, что это был важный шаг.

0

У меня была та же проблема, и я решил отключить PHP "safe_mode" в plesk, теперь WP может создавать папки и перемещать файлы без каких-либо проблем.

Надеюсь, это поможет вам.

Сообщество Overcoder
Наверх
Меню