AH00035:访问 / 被拒绝(文件系统路径“/Users/xxx/Documents/workspace”),因为路径的一个组成部分缺少搜索权限

AH00035: access to / denied (filesystem path '/Users/xxx/Documents/workspace') because search permissions are missing on a component of the path

尝试在我的 mac 上设置本地主机并在 /etc/apache2/httpd.conf

中进行了以下更改
DocumentRoot "/Users/xxx/Documents/workspace/firstRepo/htdocs"
<Directory "/Users/xxx/Documents/workspace/firstRepo/htdocs">

我知道这与 dir 权限有关,所以我按照网上的建议和 运行 以下命令:

find /Users/xxx/Documents/workspace -type d -exec chmod 755 {} \;
find /Users/xxx/Documents/workspace -type f -exec chmod 644 {} \;

运气不好。有人可以帮我弄这个吗?谢谢

Unix 权限不仅仅是“目标权限”,正如 Apache 的消息所说,您需要对整个路径的“搜索”权限,直到最后一个目录

搜索权限意味着,在一个简单的解释中,目录中至少缺少“x”,因此 apache 使用的非特权用户可以走完整个路径,直到到达“/Users/xxx/Documents/workspace/firstRepo/htdocs”。

您可以尝试此命令以确保您拥有它们:

namei -mol /Users/xxx/Documents/workspace/firstRepo/htdocs

唯一无法访问权限正确的其他情况是 SELinux 正在控制对这些目录的访问。

Apache wiki 有一个关于此的文档,因为许多人对权限在 Unix 下的工作方式感到困惑。 Permissions

可以通过更具体的方式解决此错误,例如。 :

semanage fcontext -a -t httpd_sys_content_t "/var/www/htmlxx(/.*)?"

restorecon -F -R -v /var/www/htmlxx

你可以看看oracle base article once