php mkdir()权限被拒绝mac


php mkdir() permissions denied mac

这似乎是一个常见的问题,但我似乎找不到我想要的确切答案。我在OSX上运行XAMPP,在我的web应用程序中,如果新年没有目录,我会尝试允许管理员创建一个目录。因此,在htdocs/mywebapp/images下,如果一个目录在2012年不存在,那么mkdir()并开始将文件上传到该目录。

从mywebapp目录中运行ls-l显示图像目录被创建为

drwxr-xr-x   18 myusername  admin    612 Feb 12 17:32 images

所以我尝试的第一件事就是

sudo chmod 0775 images

这也于事无补。查看httpd.config文件显示,用户/组被定义为www:www,所以我尝试将所有者/组更改为:

sudo chown www:www images

结果如预期:

drwxrwxr-x  18 _www      _www     612 Feb 12 17:32 images

但是,我再次得到了"权限被拒绝"错误。所以,我不知道下一步该怎么做。我用来达到这一点的php代码如下:

$directory_self = dirname(__FILE__);
$base_image_path = $directory_self . '/images/'; // outputs "/Applications/XAMPP/xamppfiles/htdocs/mywebapp/images/"
$year = '2012';
$image_path = $base_image_path . $year . '/'; // outputs "/Applications/XAMPP/xamppfiles/htdocs/mywebapp/images/2012/"
if(!file_exists($image_path)){
    mkdir($image_path, 0775);
}

谢谢你的帮助。

尝试检查真正的进程所有者:

  $processUser = posix_getpwuid(posix_geteuid());
  echo($processUser['name']);