0

我无法在 osx 上安装的 xampp 的站点目录中设置符号链接。我对 apache 和符号链接都没有经验,但无论如何我都会尝试一下。

这是我要实现的目录结构:

htdocs/symlinktest/
    whoami.php
    img/
        test.img.jpg
    app/
        ->img/
            test.img.jpg

符号链接是使用以下链接命令设置的:

ln -s img app

它似乎设置正确:

drwxrwxrwx   3 username  admin   102B Aug 14 16:26 app
    lrwxr-xr-x  1 username  admin     3B Aug 14 16:26 img -> img
drwxrwxrwx   3 username  admin   102B Aug 14 16:17 img
-rwxrwxrwx   1 username  admin    29B Aug 14 23:16 whoami.php

访问 localhost/symlinktest/ 会显示以 img 和 app 作为子目录的目录索引,并显示 whoami.php。但是, localhost/symlinktest/app/ 显示一个空目录。

在浏览器中打开 whoami.php 显示没有人。在 htdocs 的父级中运行 ls -l 会为 htdocs 显示以下内容:

drwxrwxr-x@  70 root    admin   2380 Aug 14 16:12 htdocs

在 htdocs 中运行 ls -l 会为 symlinktest 显示以下内容:

drwxrwxrwx    6 username  admin       204 Aug 14 17:59 symlinktest

子目录也是如此。

我已经更改了 xampp/etc/ 中 httpd.conf 中的用户设置,因此它现在具有以下用户设置:

User nobody
Group admin

它已经设置了以下指令:

DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs"
<Directory "/Applications/XAMPP/xamppfiles/htdocs">
    Options Indexes FollowSymLinks ExecCGI Includes
    AllowOverride All
    Require all granted
</Directory>

每次更改后,我都尝试通过 xampp 控制面板重新启动 xampp。我尝试将 htdocs 文件夹添加到nobody:admin,同时递归地将symlinktest 文件夹和子目录添加到nobody:admin。不幸的是,我仍然在 symlinktest/app/ 中看到了一个空索引。尝试在浏览器中查看 test.img.jpg 给我一个 403。

我已经检查了 stackoverflow 以及其他站点中类似问题的所有已接受答案,但我没有任何运气。

我束手无策,在为即将启动的项目及时制定部署策略方面远远落后。任何帮助、建议或重定向将不胜感激。

(需要明确的是,这样做的原因是将大型静态文件目录与我们的存储库隔离开来,以便更快地推/拉。)

4

1 回答 1

1

非常感谢 Bryan Encina 通过 g+ 提供答案。

答案是,检查细节。我正在创建自引用符号链接。按照我的理解,符号链接路径是相对于命令的,但目标实际上应该是结束符号链接的相对路径。所以我只需要像这样设置符号链接(注意../):

ln -s ../img app

我以为问题出在我最不了解的事情上,而不是简单地仔细检查细节。

德普。

于 2013-08-16T14:57:31.980 回答