
Я пытаюсь разрешить WordPress загружать файлы в папку wp-content, не устанавливая для этой папки права доступа 777. Однако у меня возникли некоторые трудности.
Группа и пользователь, заданные для папки wp-content, соответствуют группе и пользователю, которые Apache настроен на использование в httpd.conf. Однако, когда я запускаю команду ниже, кажется, что Apache на самом деле работает как root, а не как пользователь, указанный в httpd.conf.
Конфигурация httpd.conf
Пользователь ххх Группа ггг
Команда, запускаемая для определения пользователя, от имени которого запущен Apache
пс 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.
Может ли кто-нибудь сказать мне, в чем здесь проблема?
решение1
Apache всегда должен запускаться как root, затем он использует setuid для переключения на пользовательский контекст, указанный в httpd.conf.
Без root (uid = 0) вы не сможете создать прослушивающий сокет на привилегированных портах (ниже 1024)
Подробности читайте в следующих документах:
Из первой ссылки:
# ps -ef | grep -i http | awk '{print $1}'
root
apache
apache
apache
apache
apache