Nginx站点已启用,站点可用:无法在Ubuntu 12.04中的配置文件之间创建软链接
我试图在配置文件之间创建软链接,这些配置文件包含已启用站点中的服务器块和/etc/nginx/中的站点可用目录 我使用的命令是:Nginx站点已启用,站点可用:无法在Ubuntu 12.04中的配置文件之间创建软链接,ubuntu,symlink,hardlink,Ubuntu,Symlink,Hardlink,我试图在配置文件之间创建软链接,这些配置文件包含已启用站点中的服务器块和/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 其中
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
一切正常。但是,如果我随后将其移动到sites enabled目录,该链接将再次断开
我可以通过file manager GUI创建软链接,但不能通过命令行。我也可以创建硬链接没有问题
我怀疑这是一个权限问题,所以我将目录和目录本身的所有权限都设置为777,并将所有者更改为root以外的其他权限,但仍然没有成功
非常感谢您的帮助。您需要从了解符号链接的目标是路径名开始。它可以是绝对的,也可以是相对于包含符号链接的目录的 假设站点中有foo.conf可用 试一试 现在,您将在站点中启用一个名为foo.conf的符号链接,该符号链接的目标为../sites available/foo.conf 需要明确的是,Apache的正常配置是,潜在站点的配置文件位于可用站点中,而启用的站点的符号链接位于启用的站点中,指向可用站点中的目标。您描述设置的方式似乎并非如此,但这不是您的主要问题 若希望符号链接始终指向同一文件,而不管符号链接位于何处,则目标应为完整路径
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。我的站点配置文件是示例.conf位于站点可用文件夹中,因此您可以根据需要创建符号链接
ln-s/etc/nginx/sites available/example.conf/etc/nginx/sites enabled/
好的,我现在看到了我的问题,我以为ln
命令会为我解决路径问题,但是我现在看到我只需要指定目标的完整路径,或者从符号链接上的位置开始的相对路径。我知道问题已经得到了回答,但我想指出你的错误所在,其实很简单,当您站在/etc/nginx
目录中时,需要在第二个参数中指定文件名,而不是第一个sudo ln-s sites available/sites enabled/foo.conf
,这个答案带来了什么,而7年前接受的答案没有?抱歉,但是,我发现上面的命令更直观,因为您可以在登录终端后的任何位置编写上面的命令。而且您不必做cd
,因为上面的路径是绝对的。
lrwxrwxrwx 1 root root 26 Jun 24 21:06 000-default -> ../sites-available/default