Симлинк / var / www каталог

17

Я пытался создать символическую ссылку:

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

После /programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu я ввел следующую команду:

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

Однако результат не тот, который я ожидаю. Моя ссылка хранится в каталоге / www вместо ссылки на сам каталог www. Я использую Apache в качестве локального веб-сервера, для моего случая, я должен получить доступ к своему коду как

локальный / код / ​​ПРОЕКТ

тогда как я хочу иметь что-то вроде

локальный / ПРОЕКТ

codeКаталог должен просто служить в качестве каталога , где я хранить все мои проекты.

Что-нибудь, что я пропускаю?

user236603
источник
1
Вы удалили wwwкаталог? Он создаст символическую ссылку внутри www, если www существует. Он должен создать символическую ссылку с именем www, если www не существует.
Мендхак
Нет wwwтам нетронутым. Симлинк внутри wwwкаталога не соответствует упомянутой
мной
Вы не можете иметь две записи с одним и тем же именем (каталог и символическая ссылка в вашем случае) в одном каталоге. Что бы вы имели в виду, когда говорите /var/www/file.txt? Вы должны решить ...
Rmano
Вы должны перечитать комментарий @ Shah ... вам нужно удалить, wwwа затем создать символическую ссылку.
ГабриэльФ

Ответы:

3

Удалите (или переместите, в целях безопасности) wwwкаталог перед созданием символической ссылки.

Итак, вы должны иметь /var, но не должно быть /var/www. Тогда и только тогда будет создана символическая ссылка www, которая указывает на вашу папку localhost / code / project.

Mendhak
источник
1
этот принятый ответ неверен, прежде всего вы говорите «удалить» или «переместить», когда мы говорим о командах, поэтому вы должны также поместить соответствующую команду оболочки. Во-вторых, он неправильно указал источник и назначение в команде ln!
sarah.ferguson
1
-1 за ответ на вопрос, который не был задан, и за то, что он не указал на реальную проблему, от которой страдал пользователь.
Шадур
29

Я думаю, что у вас есть ln -s«источник» и «цель» неправильно


НЕПРАВИЛЬНО :

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


ПРАВО:

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


вы получите символическую ссылку в вашей /home/USER/codeпапке, указывающую, var/wwwчто это неправильно.

Например, у меня есть папка для сайта Салли в /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и он автоматически унаследует все /var/wwwразрешения Apache и решит множество проблем.

Энди Мак
источник
Что-то изменилось в символической ссылке на последние пару обновлений Ubuntu? Кажется, я больше не могу делать символические ссылки, и я получаю знаменитую ошибку 403.
Даниил
@ Даниил, я тоже
emrecnl
1
Разрешения не наследуются автоматически по умолчанию. Убедитесь , что chmod 0755 -Rна sallybydesignв приведенном выше примере , чтобы веб - сервер для чтения. Кроме того, вы должныAllowOverride All в каталоге по умолчанию для / (обычно в apache.conf).
Даниэль
Салли / получил Too many levels of symbolic links.
Ади Прасетьо