当前位置: 首页>>技术教程>>正文


Nginx sites-enabled,sites-available:无法在Ubuntu 12.04中的配置文件之间创建soft-link

, ,

问题描述

我正在尝试在/etc /nginx /中的sites-enabled和sites-available目录中的包含服务器块的配置文件之间创建软链接。

我正在使用的命令是:

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零件的木炭带有红色字体。

然后,当我尝试访问此soft-link时,被告知它已损坏。

当我在sites-available目录中创建soft-link时,即

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

它正常工作。但是,如果我随后将其移动到sites-enabled目录,则该链接再次断开。

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

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

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

最佳方案

您需要首先了解符号链接的目标是路径名。并且它可以是绝对的,也可以相对于包含符号链接的目录而言

假设您在sites-available中具有foo.conf

尝试

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

现在,您将在sites-enabled中创建一个名为foo.conf的符号链接,该符号链接具有目标../sites-available/foo.conf

需要明确的是,Apache的常规配置是潜在站点的配置文件位于sites-available中,而已启用站点的符号链接位于sites-enabled中,指向sites-available中的目标。描述设置的方式似乎并非如此,但这不是您的主要问题。

如果要始终将指向同一文件的符号链接指向同一文件,则无论该符号链接位于何处,目标均应为完整路径。

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

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

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

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8159.html,未经允许,请勿转载。