Каталог Symlink / var / www


17

Я намагався створити симпосилання:

/ var / www -> / home / USER / код /

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

sudo ln -s / var / www / home / USER / код

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

localhost / код / ​​ПРОЕКТ

тоді як я хочу мати щось подібне

localhost / ПРОЕКТ

codeКаталог повинен просто служити в якості каталогу , де я зберігати всі мої проекти.

Щось мені не вистачає?


1
Ви видалили wwwкаталог? Це створить симпосилання всередині www, якщо www існує. Він повинен створити символьне посилання під назвою www, якщо www не існує.
Мендак

Ні www, там немає недоторканих. Symlink всередині wwwкаталогу не відповідає тій меті, яку я згадав
user236603

У вас не може бути двох записів з тим самим іменем (каталог і символьне посилання у вашому випадку) в одному каталозі. Що б ви мали на увазі, сказавши /var/www/file.txt? Ви повинні вирішити ...
Рмано

Вам слід перечитати коментар @ Shah ... вам потрібно видалити wwwта створити симпосилання.
ГабріельF

Відповіді:


3

wwwПеред створенням симпосилання видаліть (або перемістіть) каталог.

Отже, ви повинні мати /var, але їх не повинно бути /var/www. Тоді, і лише тоді, буде створено символьне посилання, wwwяке вказує на папку localhost / code / project.


1
ця прийнята відповідь неправильна, перш за все ви говорите "видалити" або "перемістити", поки ми говоримо про команди, тому вам слід також ввести відповідну команду оболонки. По-друге, у команди ln неправильне джерело та місце призначення!
sarah.ferguson

1
-1 для відповіді на запитання, яке не було задано, і не вказав на справжню проблему, від якої користувач страждав.
Shadur

29

Я думаю, що ви маєте ln -s"джерело" та "ціль" неправильно


WRONG :

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.
Даніель

@Daniel так що я
emrecnl

1
За домовчанням дозволи не автоматично успадковуються. Обов’язково chmod 0755 -Rувімкніть sallybydesignу наведеному вище прикладі, щоб веб-сервер міг читати. Крім того, ви повинні AllowOverride Allзнаходитись у каталозі за замовчуванням для / (зазвичай в apache.conf).
Даніель

ls sally /, отримав Too many levels of symbolic links.
Аді Прасетьо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.