我正在尝试让 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