Каталог 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.