Nginx 站点已启用,站点可用:无法在 Ubuntu 12.04 中的配置文件之间创建软链接

2024-04-20

我正在尝试在 /etc/nginx/ 中的启用站点和可用站点目录中包含服务器块的配置文件之间创建软链接。

我正在使用的命令是:

sudo ln -s sites-available/foo.conf sites-enabled/

当我执行时:

ls -l

结果是:

lrwxrwxrwx 1 parallels parallels 27 Aug  6 20:44 immigrationinformation.conf -> immigrationinformation.conf

哪里的immigrationinformation.conf -> immigrationinformation.conf部分有红色字体的木炭。

当我尝试访问这个软链接时,我被告知它已损坏。

当我在站点可用目录中创建软链接时,即

sudo ln -s sites-available/foo.conf sites-available/foo_link.conf

它正常工作。但是,如果我随后将其移至启用站点的目录,则链接会再次损坏。

我可以通过文件管理器 GUI 创建软链接,但不能通过命令行。我还可以毫无问题地创建硬链接。

我怀疑这是一个权限问题,所以我尝试将两个目录和目录本身的所有权限设置为 777,并将所有者更改为 root 以外的其他权限,但仍然没有运气。

任何帮助我将不胜感激,谢谢。


您应该首先了解目标symlink is a pathname。有可能absolute or relative到包含符号链接的目录。

假设你有foo.conf in /可用站点:

cd sites-enabled
sudo ln -s ../sites-available/foo.conf .
ls -l

现在,您将有一个符号链接/启用站点 called foo.conf有一个目标../sites-available/foo.conf.

需要明确的是,Apache 的正常配置是为了潜在站点的存在/可用站点以及启用的站点所在的符号链接/启用站点,指向可用站点中的目标。

根据您描述设置的方式,情况似乎并非如此;但这不是您的主要问题。

如果你想要一个符号链接ALWAYS指向同一个文件,无论符号链接位于何处,目标都应该是完整路径; IE:

ln -s /etc/apache2/sites-available/foo.conf mysimlink-whatever.conf

这是我的输出(第一行)ls -l /etc/apache2/sites-enabled:

lrwxrwxrwx 1 root root  26 Jun 24 21:06 000-default -> ../sites-available/default

查看符号链接的目标如何相对于包含符号链接的目录(它以“..”开头,表示向上一个目录)。

硬链接完全不同,因为硬链接的目标不是目录条目,而是文件系统 Inode。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx 站点已启用,站点可用:无法在 Ubuntu 12.04 中的配置文件之间创建软链接 的相关文章

随机推荐