如何将Apache Access提供给MAC OSx上的文件夹?

Nic*_*ick 4 php apache macos

我是Mac和Apache的新手.我的开发机器我的网站无法访问web根/ images或/ css文件夹下的任何文件.

apache日志给出以下错误:

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

该网站托管在"网站"文件夹下.我在这个文件夹中查看了"获取信息",似乎"每个人都有读取权限".是什么赋予了?

谢谢!

小智 20

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

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

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

    <?php
    echo exec('whoami') . '<br>';
    echo exec('groups') . '<br>';
    ?>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用文件的用户所有者登录.

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

    $ sudo dseditgroup -o edit -a userOwnerOfFiles -t user _www
    
    Run Code Online (Sandbox Code Playgroud)
  4. 更改所需的文件组 _www

    $ chgrp -R _www path/containing/files
    
    Run Code Online (Sandbox Code Playgroud)
  5. 更改组的文件权限

    $ chmod -R g+rwx path/containing/files
    
    Run Code Online (Sandbox Code Playgroud)


Ton*_*ams 2

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

今天我遇到了这个问题,因为我正在使用虚拟主机并将文件存储在我的用户目录中的树上。

我不想递归地更改文档目录中的所有数千个文件,因此我只是 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
Run Code Online (Sandbox Code Playgroud)