2013-08-06 16 views
32

我试图创建一个包含服务器块启用站点和站点可用目录在/ etc配置文件之间的软链接/ nginx的/。Nginx的启用站点-,网站可用:无法在Ubuntu创建配置文件之间的软链接12.04

我使用的命令是:

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以外的东西,但仍然没有运气发挥各地。

任何帮助,我会非常感激,谢谢。

+1

我知道这个问题已经得到解答,但我想指出你的错误在哪里,实际上它非常简单,你需要在第二个参数中指定文件名,而不是第一个'sudo ln -s sites-available/sites -enabled/foo.conf'站在'/ etc/nginx'目录下 –

回答

68

您需要首先了解符号链接的目标是路径名。启用的网站,而且它可以是绝对或相对于包含符号链接

目录中,如果你在网站可用

foo.conf尝试

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

现在你将有一个符号链接所谓的foo.conf其中有一个目标../sites-available/foo.conf

只是要明确,Apache的正常配置是潜在网站的配置文件住在站点可用和符号链接为启用的网站生活在网站enabl指出可用的网站中的目标。这似乎不像你描述你的设置那样,但这不是你的主要问题。

如果你想在同一个文件一个符号链接始终指向,无论放置符号的位置,那么目标应该是完整路径。

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

这里是(1号线),我的ls -l的输出的/ etc/apache2的/网站启用:

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

见符号链接的目标是如何相对目录包含符号链接(它以“..”开头,意思是上一个目录)。

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

+0

好的,我现在看到我的问题,我认为'ln'命令会为我解决路径,但是现在我看到我只需要指定目标的完整路径或符号链接上位置的相对路径。 – iamyojimbo

相关问题