Apache 以 root 身份运行,而不是以 httpd.conf 中指定的用户身份运行

Apache 以 root 身份运行,而不是以 httpd.conf 中指定的用户身份运行

我正在尝试让 WordPress 能够将文件上传到 wp-content 文件夹,而无需将该文件夹的权限设置为 777。但是,我遇到了一些困难。

wp-content 文件夹的组和用户设置与 Apache 在 httpd.conf 中配置使用的组和用户相匹配。但是,当我运行以下命令时,Apache 似乎实际上是以 root 身份运行的,而不是以 httpd.conf 中指定的用户身份运行的。

httpd.conf 配置

用户 xxx
组 yyy

运行命令以确定 Apache 以以下用户身份运行

ps 辅助 | grep httpd

上述命令的输出

513 1294 0.4 1.4 316420 54864 ? S 08:30 0:06 /usr/sbin/httpd

513 是用户 xxx 的正确 UID,因此显示正确。但是,如果不将 wp-content 文件夹的权限设置为 777,我仍然无法在 WordPress 中上传文件。

有人能告诉我这里的问题是什么吗?

答案1

Apache 始终需要以 root 身份启动,然后它使用 setuid 切换到 httpd.conf 中指定用户的用户上下文。

如果没有 root 权限(uid = 0),则无法在特权端口(低于 1024)上创建监听套接字

有关详细信息,请阅读以下文档:

来自第一个链接:

# ps -ef | grep -i http | awk '{print $1}'
root
apache
apache
apache
apache
apache

相关内容