Общие права доступа к файлам 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!

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

    
задан kovshenin 11.07.2009 в 15:14
источник
  • Вы говорите, что apache работает под apache: apache может обращаться к файлам WordPress с www-данными: www-data? Если да, то узнайте, как это управляет этим и настройте его, сделайте то же самое с kovshenin: kovshenin. –  Troubadour 11.07.2009 в 15:59
  • Нет. www-data находится на общем хостинге, а apache работает под www-данными. Пользователь apace находится на моем VPS, и он работает под пользователем и группой apache: apache. –  kovshenin 11.07.2009 в 16:09

5 ответов

23
  

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

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

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

    
ответ дан caf 11.07.2009 в 15:58
  • Ладно, это ближе, спасибо большое, но почему пользовательские www-данные и kovshenin на учетной записи хостинга Media Temple не имеют дополнительных групп? Что это за трюк? ;) –  kovshenin 11.07.2009 в 16:11
  • Сложно сказать, но учетную запись общего хостинга можно настроить с помощью phpsuexec. –  caf 11.07.2009 в 16:39
  • Хорошо, кафе, проверьте это, спасибо. –  kovshenin 11.07.2009 в 16:42
  • Эй, кафе, еще один вопрос. Я изменил владельца группы всех файлов и dirs в папке wp на apache, владелец по-прежнему kovshenin, так что это kovshenin: apache и права 0775, поэтому оба kovshenin и apache имеют права читать записи и выполнять файлы. Работает отлично. Я сделал часть g + s, новые файлы создаются с помощью kovshenin: apache, все отлично, НО, права на новый файл равны 755. Как я могу исправить это для 775? Пробовал настройки g + ws .. Кажется, не работает. Есть идеи? Еще раз спасибо. –  kovshenin 11.07.2009 в 19:44
  • @ChristopherIckes: Это означает, что все, что вы используете для создания каталогов, не копирует бит setgid в новые каталоги (это делает стандартная утилита / bin / mkdir). Возможно, вам понадобится вручную chmod g + s каталоги после их создания. –  caf 01.03.2013 в 03:53
Показать остальные комментарии
1

Вы можете предоставить право собственности на www-данные в соответствии с ответ дан KahWee Teng 11.07.2009 в 15:18

  • Это отлично работает, но тогда я не могу редактировать эти файлы с моим обычным пользователем, и это то, что меня измучает .. :( –  kovshenin 11.07.2009 в 15:24
  • Разве они еще не принадлежат группе ковшенин? Вы должны иметь возможность редактировать их, если они есть. Если нет, вы можете попытаться сделать пользователя kovshenin членом группы, к которой они принадлежат, и использовать newgrp, чтобы изменить вашу группу до этого, прежде чем редактировать их. –  Troubadour 11.07.2009 в 15:39
  • Они принадлежат группе kovshenin, но новые файлы, которые я буду загружать от пользователя kovshenin, станут kovshenin: kovshenin, и мне придется снова кормить. Я настраиваю хостинг для нескольких моих клиентов, и я бы хотел, чтобы их файлы были kovshenin: kovshenin стиль, а не apache (или www-data). Интересно, как MediaTemple это сделал. –  kovshenin 11.07.2009 в 15:42
  • Вы можете добавить своего обычного пользователя в группу www-data, или вы также можете добавить sudo в начале вашей команды. –  KahWee Teng 11.07.2009 в 15:44
  • Какую команду? Пожалуйста, прочитайте, что я пытаюсь сделать, это не так просто .. Нет никаких дополнительных групп. –  kovshenin 11.07.2009 в 15:49
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
    
ответ дан Reza S 09.09.2013 в 05:57
0

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

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

    
ответ дан Fede 15.12.2009 в 20:30
0

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

    
ответ дан Manje Brinkhuis 18.09.2014 в 10:43