Я пытаюсь разрешить WordPress загружать файлы в папку wp-content без установки разрешений для папки на 777. Однако у меня возникают некоторые трудности.
Группа и пользователь, настроенные для папки wp-content, соответствуют группе, и пользователь Apache настроен для использования в httpd.conf. Однако, когда я запускаю команду ниже, кажется, что Apache на самом деле работает от имени пользователя root, а не пользователя, указанного в httpd.conf.
httpd.conf Конфигурация
User xxx Group yyy
Выполнение команды для определения того, от имени пользователя ли Apache запущен
ps aux | grep httpd
Выход из приведенной выше команды
513 1294 0.4 1.4 316420 54864 ? S 08:30 0:06 /usr/sbin/httpd
513 - правильный UID для пользователя xxx, поэтому он отображается правильно. Однако я по-прежнему не могу загружать файлы в WordPress, не установив для папки wp-content права доступа 777.
Может кто-нибудь сказать мне, в чем проблема?
Apache всегда должен запускаться как root, затем он использует setuid для переключения на пользовательский контекст указанного пользователя в httpd.conf.
Без root (uid = 0) вы не можете создать прослушивающий сокет на привилегированных портах (ниже 1024)
Подробности читайте в следующих документах:
Из первой ссылки:
# ps -ef | grep -i http | awk '{print $1}'
root
apache
apache
apache
apache
apache