【发布时间】:2017-10-21 17:09:58
【问题描述】:
我已经在 Digital Ocean 上设置了一个 Ubuntu 服务器。以下是配置详情:
Ubuntu 版本:Ubuntu 16.04.2 LTS
Apache 版本:Apache/2.4.18 (Ubuntu)
我正在尝试通过浏览器运行 php 脚本,该脚本需要在目录中创建一个文件。我在 /var/log/apache2/error.log 文件fopen(<folder_to_write>): failed to open stream: Permission denied in test_write.php
我发现用户 www-data(apache2 用户)存在权限问题。我更改了文件夹的所有者,如下所示:
chown -R www-data:www-data folder_to_write
然后
chmod 2775 folder_to_write
这不起作用。
最后,我尝试了最后一个选项。我将目录权限更改为sudo chmod -R 777 folder_to_write,希望得到一些线索。但是,尽管授予了此完全访问权限,但我收到了权限被拒绝的消息。
之前有没有人遇到过这样的问题?不知道我做错了什么。我对另一个用户尝试了相同的步骤,并且似乎工作正常。
感谢您的帮助。非常感谢。
【问题讨论】:
-
您能否再次检查 www-data 用户是否对文件夹嵌套中的每个文件夹都具有执行访问权限?因此,如果您需要在嵌套 A/B/C 中写入文件夹 C,请确保它可以在每个文件夹 A、B 和 C 上执行 (x)
-
谢谢@Maurizio。该文件夹确实具有递归执行权限。使用相同的权限,来自同一组的另一个用户可以创建该文件。只有 www-data 用户(也属于同一组)无法创建文件。
标签: linux digital-ocean apache2.4