Настройка разрешений для WordPress на Amazon EC2 (Amazon Linux) - PullRequest
10 голосов
/ 03 марта 2012

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

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

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

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

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

Ответы [ 5 ]

8 голосов
/ 03 марта 2012

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

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

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

Выполнить

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-user в группу apache и изменил разрешения для папки wp-content, чтобы иметь разрешение на запись группы 775.

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

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

6 голосов
/ 02 мая 2016

Я установил для владельца 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-файлы без изменения разрешений каждый раз.

1 голос
/ 19 апреля 2017

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

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

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

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

usermod -a -G apache ec2-user

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

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

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

1 голос
/ 11 июня 2016

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 и его подкаталогов для добавления записи группы разрешения и установить идентификатор группы в будущих подкаталогах.

[WordPress для пользователей ec2] $ sudo chmod 2775 / var / www [WordPress для пользователей ec2] $ 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: [ ОК]

0 голосов
/ 30 августа 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...