我对托管机器具有 root 访问权限。我创建了一个用户帐户“abcd”,该用户的目录是:
/home/abcd/public_html
在 httpd.conf 中我有:
<VirtualHost *:80>
ServerName abcd.mysite.com
DocumentRoot /home/abcd/public_html
</VirtualHost>
该用户在上述位置有一个网站。但他无法将图像上传到 /images 文件夹。
权限如下:
drwxrwxr-x
在图像上
答案1
/主页/abcd/public_html/图片归用户和组所有A B C D. Web 服务器正在以另一个用户和组身份运行(例如阿帕奇或者www-数据)。那么,Web 服务器可以写入该目录吗?
- d读写rwx rx :用户权限不适用,因为 Web 服务器未以用户 abcd 身份运行
- 读/写读写rx :组权限不适用,因为 Web 服务器未作为组 abcd 运行
- 权限接收:则必须应用其他权限,并且它们不允许 Web 服务器对其进行写入
您可能认为解决方案是chmod o+w /home/abcd/public_html/images
,但这将允许任何用户写入图像,而您只想允许 Web 服务器写入图像。更好的方法是将拥有图像目录的组更改为 Web 服务器以之运行的组。由于您使用的是 apache,因此您应该能够使用 找到该组ps -o group $(pgrep httpd)
。您可以忽略以 root 身份运行的一个进程。
如果这不清楚,也许 wordpress 文档更改文件权限会有所帮助。