2016-05-05 3 views
0

Я нахожусь в своей коробке Ubuntu на AWS. У меня есть два пользователя: medsyd (владелец моего сайта wordpress) и www-data (который работает apache). На данный момент, чтобы попытаться заставить работу работать, я добавил обе группы друг к другу - так что www-данные принадлежат группе medsyd, а medsyd принадлежит к группе www-data.Проблемы с правами доступа к файлам при загрузке плагинов для Wordpress

Я пытаюсь сделать так, чтобы Wordpress мог загружать/устанавливать плагины без запроса доступа к FTP. Я могу загружать изображения/мультимедиа просто отлично, но плагины, похоже, ведут себя по-настоящему странно и не следуют тому, что я ожидаю, учитывая права на файл.

Вот что я пробовал:

  1. medsyd: medsyd как владелец каталога сайта и все его содержимое; 775 каталогов, 664 файлов. Wordpress запрашивает FTP. Зачем? (пользователь www-data должен иметь возможность писать/читать правильные файлы, так как он принадлежит группе medsyd)

  2. medsyd: www-data как владелец каталога сайта и всего содержимого; 775 каталогов, 664 файлов. Wordpress запрашивает FTP. Зачем? (пользователь www-data должен иметь возможность писать для чтения/записи правильных файлов, так как все файлы принадлежат группе www-данных)

  3. www-data: www-data как владелец каталога сайта и все это содержание; 775 каталогов, 664 файлов. Wordpress НЕ запрашивает FTP. УРА. Но www-data не должен владеть всеми моими файлами.

  4. www-data: www-data как владелец каталога содержимого wp (и всего содержимого) ТОЛЬКО (все остальное вне wp-контента принадлежит medsyd: medsyd); 775 каталогов, 664 файлов. Wordpress ASKS для FTP. (Почему это отличается от примера чуть выше, который работал, где WWW-данные принадлежат все вне Wp-содержание каталога Aswell?)

Какая логика делает WordPress использовать, чтобы решить, следует ли просить FTP при установке плагинов? Кажется, я не думаю о том, что могло бы примириться с приведенными выше примерами.

Редактирование: Я понимаю, что есть другие способы обойти это: например, изменение пользовательского apache выполняется как, хранение учетных данных FTP в wp-config и т. Д., Но независимо от того, что я понимаю, почему разрешения, которые я использую выше, t ведет себя так, как ожидалось.

ответ

1

Самый простой способ - запустить apache как пользователь «medsyd». Другие способы требуют более сложной конфигурации сервера.

Открыть файл/и т.д./apache2/envvars и изменить следующие строки:

export APACHE_RUN_USER=medsyd 
export APACHE_RUN_GROUP=medsyd 

Затем перезапустить Apache. служба apache2 перезагрузка

обновление

Если у вас есть несколько сайтов, и хотел бы разделить их, я предлагаю вам прочитать о mpm_itk.

Я попытаюсь объяснить, почему у вас проблемы с 775 привилегиями. Привилегия GROUP влияет только на пользователей с той же группой PRIMARY. Другие группы не имеют значения.

Например, у вас есть каталог «www», принадлежащий medsyd: medsyd. Разрешения - 775. Apache не сможет писать там, потому что это первичная группа - www-data.Вы должны изменить Apache UID/GID на www-data: medsyd, я имею в виду изменить его группу PRIMARY.

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

+0

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

+0

мой комментарий был слишком длинным, пожалуйста, прочитайте «обновление» в ответе – Serge