Як перевірити, яку групу Apache я можу використовувати для написання веб-сервера?


13

Я намагаюся змусити Wordpress працювати. На даний момент у мене є таке повідомлення про помилку:

Could not create directory. /var/www/html/wp-content/upgrade/theme_name

при спробі завантажити тему. Це дозволи, встановлені для/var/www/html/wp-content/upgrade/

drwxrwxr-x 3 ec2-user apache 4096 Jun 21 00:30 upgrade

chmod 777 upgradeзмушує помилку усунутись. Але це не вважається найкращою практикою. Однак, я думаю, це теж має працювати ... чому б і ні?

Напевно, веб-сервер може не включатись у вказані вище дозволи. Яку групу потрібно використовувати, щоб веб-сервер міг писати?

(Моя установка - Amazon EC2, Amazon Linux AMI з httpd)

Відповіді:


16

Я нічого не знаю про Amazon EC2, але ви повинні вміти:

  1. Отримайте ім’я користувача, який працює Apache, командою, подібною до цієї:

    ps aux | grep apache # The username should be in the first column.
    
  2. Отримайте групи, до яких входить цей користувач, за допомогою groups(1)команди:

    groups [USERNAME]
    

Перший стовпець - apache, а групи apache повертають apache: apache. Рядок із першої програми виглядає приблизно так: apache 11171 0,0 3,4 39984 21516? S Jun20 0:02 / usr / sbin / httpd

1
Користувач apache чітко має права запису в каталог. Ви кажете chmod 777вирішує проблему, тож я гадаю, що ви використовуєте іншого користувача для завантаження тем. Я не дуже добре знаю Wordpress Відповідно до цієї відповіді спробуйте змінити право власності на користувача www-data.
rahmu

Дякуємо, що знайшли час на пошук статті та все. Дійсно, це був інший користувач, як я зрозумів, що Wordpress використовував FTP для своєї роботи. Я дізнався, що користувач, як було запропоновано нижче, а потім додав до нього групу apache, виявлену на кроці 1. Це вирішило це.

2

Ви можете спробувати скористатися наступним методом командного рядка, щоб дізнатися назви груп Apache:

WWW_GROUP=`ps axo user,group,comm | egrep '(apache|httpd)' | grep -v ^root | cut -d\  -f 2| uniq`
echo Apache group is: $WWW_GROUP

Щоб отримати користувача, перевірте: Як визначити користувача Apache з командного рядка?


1

Оновлення chmod 777 робить помилку усуненням.

Ну, у такому випадку ls -ld /var/www/html/wp-content/upgrade/theme_nameслід розкрити повноваження творця, які ви можете використовувати для точного надання доступу.

І краще використовувати 1777(як для /tmp), оскільки принаймні це гарантує, що тільки власник файлу зможе від’єднати його.


1
Зробіть помилку! Цікавий підхід до вирішення проблем. Це не рішення, це брехня.
iharob

Як ви називаєте "брехня" - цитуючи оригінальний авторський текст? :) чи пропозиція принаймні використовувати 1777 замість 777? :) чи дізнатися право власності на творця та використовувати його для "надання точного доступу"?
poige

Це брехня системи, тому що 777це невірно в жодному мені відомому контексті.
iharob
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.