【问题标题】:Creating a symbolic link in Sites directory在站点目录中创建符号链接
【发布时间】:2014-03-19 18:31:06
【问题描述】:

我的~/Sites 目录中有一个文件,当我通过coderama.local/~coderama/index2.php 浏览到它时它工作正常

现在我想变得棘手并将我的index2.php 文件移动到我系统上的其他地方,所以我通过创建一个符号链接来做到这一点。但是,当我尝试访问 coderama.local/~coderama/index2.php 时,我现在收到以下错误。

有什么想法吗?

谢谢!

禁止

您无权访问此服务器上的 /~coderama/index2.php。

【问题讨论】:

    标签: macos apache2


    【解决方案1】:

    这是一个可配置的 Apache 选项。似乎默认情况下,在 Mac(可能还有大多数安装)上,Apache 被配置为不遵循符号链接。我猜(正如上面其他人提到的)这是出于安全目的。

    但有时启用符号链接跟踪确实很方便,尤其是在开发某些类型的应用程序期间。您需要做的是 1) 更改 Apache 配置以允许以下符号链接,然后 2) 重新启动 Apache。

    配置步骤如下:

    a) cd /etc/apache2(这是 Apache 的配置文件在 Mac 上的默认位置)

    b) 你会在这里看到几个目录。一种叫做用户

    c) cd 用户

    d) ls 应该显示一个带有您的登录名的 .conf 文件(login.conf)我是“marvo”,所以我的名字是“marvo.conf”

    e) 编辑这个文件(我使用 vi)——但你必须使用 sudo:

    sudo vi marvo.conf
    

    f) 你会看到类似的东西

    <Directory "/Users/marvo/Sites/">
        Options Indexes MultiViews 
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    

    g) 添加“FollowSymLinks”选项,使 .conf 文件的第二行如下所示:

    Options Indexes MultiViews FollowSymLinks
    

    (您可以在网上找到其他配置选项。我找到了这个页面:http://httpd.apache.org/docs/2.0/mod/core.html#directory

    h) 保存文件。

    现在您必须重新启动 Apache 以便它接收配置更改。谷歌搜索了一下,我发现这最容易从命令行使用以下命令完成:

    sudo /usr/sbin/apachectl restart
    

    (在http://mcapewell.wordpress.com/2006/09/22/restart-apache-in-mac-os-x/发现)

    现在符号链接应该可以在您的站点页面上正常工作了。

    【讨论】:

    • 您也可以使用以下命令重新启动 apache:sudo apachectl restart
    • 阅读 agarie 的下一个答案以获得正确的信息。至少在 Mountain Lion 上,默认情况下会配置 FollowSYmLinks ,但如果您在 Documents、Dropbox 等中有要链接的内容,则需要添加 a+rx默认情况下它们是 a-rx 的那些目录的权限。
    • 我最初是为雪豹写的。
    【解决方案2】:

    有同样的问题。不幸的是,Marvo 的回答还不够。

    问题在于路径中每个文件夹的权限设置,从~/ 开始。目录需要设置execute 标志才能递归目录树。因此,就我而言,我将~/Dropbox/projects/theme 中的主题文件夹符号链接到~/Site/wordpress 上的wordpress 安装。

    答案是:

    chmod a+x ~/Dropbox/
    chmod a+rx ~/Dropbox/projects
    

    这是一个老问题,但如果有人访问此页面,它可能会有用。 :)

    【讨论】:

    • 遇到了同样的问题,并且只更改了 ~/Dropbox/folder 的权限,而不是 ~/Dropbox 本身的权限。我现在应该知道了!谢谢。
    • 您知道,我必须在新 Mac 上再次按照自己的说明进行操作。是的,必须设置权限。与将 Apache 配置为遵循符号链接相比,这是一个单独的问题,但同样是一个有用的提醒。
    • 干杯,有点有趣的是,为了安全,您必须公开访问您的主文件夹!
    • 如果您真的对这一切都“小心”,您可能会使用与网络服务器相同的组之一,并限制对网络服务器组的访问,而不是将其授予所有人。但是在像我这样的开发机器上,我并不在乎。
    【解决方案3】:

    似乎是一个安全问题(Matt 也提出了建议)

    http://discussions.apple.com/thread.jspa?threadID=1771399

    【讨论】:

    • 当我通过 Google 提出这个问题时,这对我有用。谢谢!
    • 是的,链接文件夹的整个路径上的 chmod a+rx 帮助了我。谢谢!
    【解决方案4】:

    我不记得具体原因,但它不起作用。这是一个安全问题。您可以使用 XAMPP http://www.apachefriends.org/en/xampp-macosx.html 或 MAMP http://www.mamp.info/en/index.html 来解决这个问题。

    【讨论】:

      【解决方案5】:

      除了马沃的回答。帮助我的是更改 Documents 文件夹的权限:

      cd ~
      chmod a+rx Documents/
      

      【讨论】:

        【解决方案6】:

        还要确保你的 httpd-vhosts.conf 中有一个指令

        否则,您会得到相同的“浏览器中禁止 403”,错误日志中显示“客户端被服务器配置拒绝”。

        【讨论】:

          猜你喜欢
          • 2023-03-14
          • 1970-01-01
          • 1970-01-01
          • 2014-08-06
          • 1970-01-01
          • 2012-02-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多