【问题标题】:Mac Apache 403 error on symlink符号链接上的 Mac Apache 403 错误
【发布时间】:2013-02-18 04:38:42
【问题描述】:

我正在尝试在单独的目录中为我的一些 php github 项目设置目录,然后在 Web 文档根目录中创建指向它们的符号链接。

文档根目录是 /Users/aharris88/sites。我设置了这样的符号链接:

ln -s ~/dropbox/github/tester/ ~/sites/tester

现在我有一个简单的 index.php 文件,其中包含以下代码:

<?php
echo "hello";
?>

但是当我转到 localhost/~aharris88/tester 时,我收到 403 Forbidden 错误。 当我转到 localhost/~aharris88 时,它没有与其他目录一起列出。

我已经到 /etc/apache2/users 并添加了 aharris88.conf 并添加了以下内容:

<Directory /Users/aharris88/Sites/>
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

我正在使用库存的 OS X Apache 安装,但是当我运行 mamp 并转到 localhost:8888/tester/ 时它可以工作。 那么如何使这个符号链接与现有的 OS X Apache 安装一起使用?

【问题讨论】:

  • 您是想在现有的 OS X Apache 安装上还是在 MAMP 的 Apache 上执行此操作?如果是前者,请尝试停止 MAMP,以确保您使用的 Web 服务器肯定是 MAC OS 的。
  • 我正在尝试使用现有的 OS X Apache 安装。当它不起作用时,我尝试了 mamp 并且它起作用了。但是,是的,当我想使用现有的 OS X Apache 安装并运行 sudo apachectl start 时,我总是停止 mamp。
  • 对。我对 Apache 的这一部分并不是特别熟悉——我不使用用户目录。但是您可能会在手册的这一部分中找到一些线索:httpd.apache.org/docs/2.2/mod/mod_userdir.html。看看 MAMP httpd.conf 看看里面有没有相关的指令?
  • 除了比较您的 apache 配置文件之外,在您的 MAMP 与 OS X 设置中运行的 Web 服务器是什么用户?如果不同(可能是您的本地用户在一个和 www 在另一个),在终端中,使用 sudo 验证您是否可以访问从 / 一直到您尝试作为相应网络用户的目录的整个路径.
  • 我运行了这行 php: 并且 mamp 以我的本地用户 (aharris88) 身份运行,而 apache 以 _www 身份运行

标签: macos apache


【解决方案1】:

解决方案基于@davidr 的评论:

我用以下代码创建了一个名为 whoami.php 的 php 文件:

<?php echo exec('whoami'); ?>

我使用 mamp (localhost:888/whoami.php) 运行此页面,然后使用 os x apache install (localhost/~aharris88/whoami.php) 运行此页面,因为符号链接使用 mamp 而不是 apache。

Mamp 返回了我的本地用户 (aharris88),而 apache 返回了 _www。所以这意味着 _www 无权访问符号链接指向的目录(~/Dropbox/github/tester)。

当我检查权限时,我注意到保管箱目录设置为 700 aharris88,因此我将其设置为 755。

sudo chmod 755 dropbox

这解决了我的问题。

【讨论】:

  • 感谢您指出需要 chmod 755 的整个保管箱文件夹
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2013-10-19
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
相关资源
最近更新 更多