我如何将Apache Access授权给MAC OSx上的文件夹?

我真的是新的Mac和Apache。 我的开发机器我的网站无法访问web根目录/图像或/ css文件夹下的任何文件。

apache日志给出了以下错误:

(13)权限被拒绝:文件权限拒绝服务器访问:

该网站托pipe在“网站”文件夹下。 我检查了这个文件夹中的“获取信息”,似乎“每个人”都有读取权限。 是什么赋予了?

谢谢!

问题是Apache运行的用户不同于文件的用户所有者,Apache的用户没有读/写/执行权限。 在我的情况下,用户是_www ,是_www组的成员。

我解决了这个问题,将文件组更改为_www

  1. 寻找Apache的用户和组。 我用这个PHP脚本:

     <?php echo exec('whoami') . '<br>'; echo exec('groups') . '<br>'; ?> 
  2. 用文件的用户所有者登录。

  3. 将文件的用户所有者添加到_www组。

     $ sudo dseditgroup -o edit -a userOwnerOfFiles -t user _www 
  4. 将所需的文件组更改为_www

     $ chgrp -R _www path/containing/files 
  5. 更改组的文件权限

     $ chmod -R g+rwx path/containing/files 

解决这个问题的另一种方法是在MacOSX中使用扩展属性

chmod + a“_www允许列表,读取,搜索,readattr,readsecurity,file_inherit,directory_inherit”/路径/到/ document_root

今天对我来说这是一个艰难的过程。 事实证明,我需要权限的Web服务器的整个目录树一直到文档根。

它今天来了我,因为我使用的是一个虚拟主机,并存储在我的用户目录树很远的文件。

我不想递归地更改我的Documents目录中的所有数千个文件,所以我只是chmod了路径中的每个文件夹。 在我的主目录中:

 $ chmod 755 Documents $ chmod 755 Documents/projects $ chmod 755 Documents/projects/dev $ chmod 755 Documents/projects/dev/someglamorousclientname/ $ chmod 755 Documents/projects/dev/someglamorousclientname/docroot