Symlink / var / www目录


17

我一直在尝试创建符号链接:

/ var / www-> / home / USER / code /

/programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu之后,我输入了以下命令:

须藤ln -s / var / www / home / USER / code

但是结果不是我期望的。我的链接存储在/ www目录中,而不是链接www目录本身。我使用apache作为本地Web服务器,就我而言,我必须以以下方式访问我的代码:

本地主机/代码/项目

而我希望有这样的东西

本地主机/项目

code目录应仅用作我存储所有项目的目录。

有什么我想念的吗?


1
您删除www目录了吗?如果www存在,它将在www内创建一个符号链接。如果www不存在,它将创建一个名为www的符号链接。
Mendhak 2014年

没有www完好无损。www目录中的符号链接没有达到我提到的目的
user236603 2014年

同一目录中不能有两个名称相同的条目(在您的情况下为目录和符号链接)。说/var/www/file.txt是什么意思?您必须决定...
Rmano 2014年

您应该重新阅读@Shah的注释...您需要删除www然后创建符号链接。
GabrielF 2014年

Answers:


3

www创建符号链接之前,请删除(或为了安全起见移动目录)。

因此,您应该有一个/var,但不应有一个/var/www。然后,只有这样,才会www创建一个指向您的localhost / code / project文件夹的符号链接。


1
这个公认的答案是错误的,首先,在我们谈论命令时,您说“删除”或“移动”,因此您也应该放置相应的shell命令。其次,他在ln命令中有错误的源和目标!
sarah.ferguson

1
-1用于回答未提出的问题,也未指出用户遭受的实际问题。
Shadur

29

我认为您ln -s错误地找到了“来源”和“目标”


错误

sudo ln -s /var/www /home/USER/code


对:

sudo ln -s /home/USER/code /var/www


您最终会在/home/USER/code文件夹中找到一个指向var/www错误的符号链接。

例如,我有一个用于sally网站的文件夹 /home/webs/sallybydesign/

cd /var/www

不应调用任何文件夹或文件sallybydesign/var/www因为我们将要创建一个。

 sudo ln -s  /home/ndmaque/webs/sallybydesign /var/www/sallybydesign

查看新文件(符号链接)

ls -l

您将看到一个名为的文件sallybydesign,它是您home/webs/sallybydesign文件夹的符号链接,如果运行

ls sallybydesign/ 

您将在文件home/webs/sallybydesign夹中看到文件。

如果是这样,您可以将您的vhost文件指向/var/www/sallybydesign,它将自动继承所有apache /var/www权限并解决许多问题。


将最新更新链接到Ubuntu的符号链接是否发生了变化?我似乎无法再进行符号链接,并且收到了著名的403错误。
丹尼尔(Daniel)

@Daniel我也是
emrecnl

1
默认情况下,权限不会自动继承。确保在上面的示例中chmod 0755 -R启用sallybydesign,以允许网络服务器读取。另外,您还必须AllowOverride All在默认目录中找到/(通常在apache.conf中)。
丹尼尔(Daniel)

ls sally /,得到了Too many levels of symbolic links
Adi Prasetyo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.