即使拥有777权限,也无法在服务器上使用mkdir或打开文件

时间:2015-01-08 22:44:18

标签: php apache ubuntu ubuntu-12.04 php-5.3

我看到类似的问题已在Stack Overflow上得到解答,但解决方案尚未解决我的特定问题,所以我不得不问......

我有一个应用程序,需要在站点目录之外创建目录和修改文件。这可以在生产服务器上找到。

在使用完全相同版本的Ubuntu和PHP启动测试服务器后,我在尝试打开文件或创建目录时在登台服务器上收到错误。

以下是错误:

mkdir() [http://php.net/function.mkdir]: Permission denied

fopen(/root/Dropbox/Backend/Booth-01/settings.sh) [http://php.net/function.fopen]: failed to open stream: Permission denied

我尝试过的事情:

  • 检查运行应用程序的用户名(它是www-data
  • 以递归方式将外部目录的所有者更改为www-data
  • 将目录的权限更改为777(我知道,这是一个坏主意,但我只是试着看看这是否会有所帮助,直到我弄清楚问题是什么,并将权限更改为更严格的一次我明白了吗)
  • 检查 umask 值。它被设置为0002,这不应该给我带来麻烦。只是为了踢,我尝试将它改为0000并且它没有帮助。
  • 检查以确保PHP的安全模式未启用。
  • 检查以确保open_basedir中未指定任何内容。在任何情况下,如果这是问题,它将抛出不同的错误消息。

我无法想到下一步该尝试什么,我希望其他人能够看到我不知道的事情。


Ubuntu 12.04.5 x64

PHP 5.3.10

2 个答案:

答案 0 :(得分:0)

这不仅是您必须拥有权限的文件夹本身。您还应该检查父文件夹。我想,如果你检查一下,这将解决你的问题。

答案 1 :(得分:0)

如果这是外部驱动器(看它是否显示在mount中),那么您可能需要重新安装它。自动安装的外部驱动器可以阻止权限

sudo umount <moint-point>
sudo mount /dev/<device> <new-moint-point>