通过我的网站上传文件失败,因为 Apache 未被识别为具有写入权限。但是,我的权限却显示并非如此。有什么想法吗?
通过脚本上传时,脚本返回
Error: Directory is not writable
目录是/home/username/public_html/uploads
目录权限是drwxrwsr-x
目录归 Apache 所有,以username:webadmins
Apache 身份运行,www-data
并且是组成员www-data webadmins
我应该进行哪些更改才能使 www-data (Apache) 能够写入此目录?谢谢。
答案1
您可以尝试将上传文件夹的权限设置为 777(所有用户均具有读写权限)。但这并不安全。您不应在生产系统或具有多个用户的系统上使用此方法。无论如何,这将像这样工作
sudo chown -R 777 /home/username/public_html/uploads
另一种(更好的)方法是使用 Apache 的 mod_ruid2。你可以从此处下载http://sourceforge.net/projects/mod-ruid/
你必须编译它,然后启用该模块sudo a2enmod ruid2
安装并启用后,您可以编辑 userdir 模块的配置文件sudo nano /etc/apache2/mods-enabled/userdir.conf
添加以下内容
<IfModule mod_ruid2.c>
RMode stat
RUidGid username usergroup
RGroups username usergroup
</IfModule>
之后,你必须重新启动 Apache 服务sudo service apache2 restart
通过此配置,您可以将 public_html 目录与您的用户和用户组一起使用。
但这仅在只有一个用户且其 userdir public_html Apache 时才有效。