【问题标题】:Apache php permission not working on mac osxApache php权限在mac osx上不起作用
【发布时间】:2014-01-21 09:58:08
【问题描述】:

我想让这个简单的脚本工作,但我不断收到警告:'Warning: mkdir(): Permission denied in ...' 我已经设置了一千次权限(通过mac中的信息屏幕,我不擅长终端)。我已将脚本文件夹的权限设置为 777,我已将整个用户文件夹设置为 777,/var 文件夹,...警告没有消失..

<?php
mkdir('/datatest');
?>

【问题讨论】:

  • 在您的示例中,mkdir() 将尝试在 / 而不是 /usr 或 /var 或您的网络服务器文档根目录中创建目录。你的意思是创建一个目录比如/var/datatest?如果是这样,那就是在 mkdir() 中使用的完整路径。
  • 我希望脚本在脚本的根目录中创建文件夹“datatest”。因此,如果脚本是 /sites/foo 中存在的 test.php,那么我希望脚本创建 /sites/foo/datatest

标签: php macos apache permissions


【解决方案1】:

根据您的澄清评论,如果您想在 /sites/foo 中创建一个目录,那么您的代码应该是:

<?php
mkdir('/sites/foo/directoryname');
?>

请注意,这指定了您要创建的目录的完整路径。确保您有权写入父目录(例如 /sites/foo)。

你也可以试试

<?php
mkdir('directoryname');
?>

注意没有前导斜杠。相同的权限注释适用。

【讨论】:

  • 好吧,这行得通!非常感谢!你能解释一下为什么脚本没有在脚本所在的目录中创建目录吗?
  • 如果脚本在目录 /sites/foo 中并且你没有在 mkdir() 函数中指定完整路径,如果你有适当的权限,它应该在 /sites/foo 中创建一个目录.如果脚本位于目录 /sites/foo 中并且您指定了完整路径,那么如果您具有适当的权限,则将在该显式位置创建目录。
【解决方案2】:

您只需要添加一个 .到文件路径的开头,使其成为绝对相对路径... O_O

mkdir('./directoryname');

这将与代码所在的 PHP 脚本所在的位置相关。

【讨论】:

    【解决方案3】:

    转到您的 Xammp 目录,右键单击并选择读取信息。在它的底部,单击链,输入您的密码并更改对所有人的读写权限。现在,点击 cog 并选择 Apply to include elements。

    刷新包含代码的页面,tadam, mkdir 将起作用。

    【讨论】:

      猜你喜欢
      • 2011-06-02
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 1970-01-01
      • 2014-12-19
      相关资源
      最近更新 更多