Настройка разрешений для WordPress на Amazon EC2 (Amazon Linux)

Я устанавливаю WordPress на экземпляр Amazon EC2. Он использует Amazon Linux и является стандартной настройкой (только php5 и mysql).

WordPress отлично работает, но есть некоторые проблемы с разрешением. В частности, я не могу загружать носители, обновлять постоянную ссылку, плагины и т.д. У меня нет права на запись под пользователем ec2, и потому, что я загрузил все файлы поверх WinSCP, текущий владелец - ec2-пользователь.

Мой вопрос - лучший способ исправить эту проблему? Возможно, я исправлю это, изменив права собственности на все папки/файлы на root, но это не очень элегантное или динамическое решение.

Путь к моему веб-каталогу -/var/www/html. Могу ли я разрешить ec2-пользователю правильные разрешения? Возможно, если у вас есть группа, которую используют пользователь Apache и пользователь ec2-пользователя?

Любые идеи будут оценены

Ответ 1

См. http://blog.david-jensen.com/development/wordpress-amazon-ec2-apache-permissions-wordpress/ среди других результатов Google. Ему кажется, что ему повезло:

Я прилагаю все усилия, чтобы выяснить, как настроить Amazon EC2 Apache разрешений, позволяющих WordPress управлять всеми файлами на моем экземпляре Amazon EC2 без WordPress, запрашивающего разрешения FTP когда я пытаюсь загрузить плагин или тему через сайт администратора. Я закончил чтобы предоставить файл и групповое владение файлами в моей папке html для пользователя Apache для корректной работы WordPress. http://www.chrisabernethy.com/why-wordpress-asks-connection-info/ и его комментарии помогли мне прийти к такому выводу.

На веб-странице:

Run

sudo su chown -R apache:apache /vol/html

Затем я устанавливаю разрешения на то, что упрощает руководство WordPress для моего корня html, поскольку все мои файлы WordPress существуют, поскольку я запускаю MultiSite с несколькими доменами.

find /vol/html/ -type d -exec chmod 755 {} \;
find /vol/html/ -type f -exec chmod 644 {} \;

Поскольку у apache нет логина, я чувствую, что это стоит риска, хотя, вероятно, есть лучший способ сделать это. Затем я добавил ec2-пользователя в группу apache и изменил права доступа к папке wp-контента, чтобы иметь возможность записи на группы 775.

useradd -G apache ec2-user
sudo chmod -R 775 /vol/html/wp-content

Это позволяет FileZilla или любой другой программе регистрироваться как ec2-пользователь, позволяющий изменять файлы и папки только в папке wp-content. Если у кого-то есть лучший способ сделать это, я хотел бы знать. Я использую SSH и SFTP для доступа к серверу с ключевыми файлами.

Ответ 2

Я установил владельца ec2-user: apache, затем выполнил упрочнение, а затем отредактировал права на чтение и запись группы для папок.

sudo chown -R ec2-user:apache /vol/html
sudo chmod -R 755 /vol/html

sudo find /vol/html/ -type d -exec chmod 755 {} \;
sudo find /vol/html/ -type f -exec chmod 644 {} \;

sudo chgrp -R apache /vol/html
sudo chmod -R g+rw /vol/html
sudo chmod -R g+s /vol/html

Затем отредактируйте /wordpress -install/wp-config.php и определите fs_method

define('FS_METHOD', 'direct');

Теперь wordpress может обновлять/выгружать и т.д. И вы все равно можете SFTP файлы, не изменяя разрешения каждый раз.

Ответ 3

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hosting-wordpress.html

Чтобы исправить права доступа к файлу для веб-сервера Apache

Некоторые из доступных функций WordPress требуют права на запись на корень документа Apache (например, загрузка медиа Экраны администрирования). Веб-сервер работает как пользователь apache, поэтому вам нужно добавить этого пользователя в группу www, которая была создана в Учебник веб-сервера LAMP.

Добавьте пользователя apache в группу www.

[ec2-user wordpress] $sudo usermod -a -G www apache Измените файл владение /var/www и его содержимое для пользователя apache.

[ec2-user wordpress] $sudo chown -R apache/var/www Изменить группу право собственности на /var/www и его содержимое в группу www.

[ec2-user wordpress] $sudo chgrp -R www/var/www Измените каталог разрешений /var/www и его подкаталогов для добавления групповой записи разрешений и установить идентификатор группы в будущих подкаталогах.

[ec2-user wordpress] $sudo chmod 2775/var/www [ec2-user wordpress] $find/var/www -type d -exec sudo chmod 2775 {} \; Рекурсивно менять разрешения файла /var/www и его подкаталоги для добавления группы разрешения записи.

[ec2-user wordpress] $find/var/www -type f -exec sudo chmod 0664 {} \; Перезапустите веб-сервер Apache, чтобы выбрать новую группу и разрешения.

[ec2-user wordpress] $sudo service httpd restart Остановка httpd:
[OK] Запуск httpd: [ OK]

Ответ 4

Я столкнулся с этим вопросом, ища ответ. Я установил все права собственности и группы на Apache. Однако, если я хочу загрузить что-то ftp, мне нужно сменить разрешения ssh на ec2-user, загрузив файл и изменив его. Я полагал, что это небольшая цена, чтобы заплатить за разрешение, установленное в рекомендуемых настройках WordPress.

Ответ 5

Я попробовал решение, представленное в ответе @markratledge для моего экземпляра AWS EC2 (Amazon Linux).

Wordpress (apache) был хорош, но SFTP (ec2-user) выдавал ошибки разрешения.

Затем я попробовал следующее:

Я добавил ec2-пользователя в группу apache:

usermod -a -G apache ec2-user

Затем я установил "apache" как группу владельца и "ec2-user" в качестве владельца для установочного каталога WordPress (/var/www/html в моем случае):

chown -R apache:ec2-user /var/www/html

Наконец, WordPress был счастлив, и я тоже мог SFTP. Спасибо!