Katalog Symlink / var / www

17

Próbowałem utworzyć dowiązanie symboliczne:

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

Po /programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu wprowadziłem następujące polecenie:

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

Jednak wynik nie jest tym, czego oczekuję. Mój link jest przechowywany w katalogu / www zamiast linkowania samego katalogu www. Używam apache jako lokalnego serwera WWW, w moim przypadku muszę uzyskać dostęp do mojego kodu jako

localhost / code / PROJECT

podczas gdy chcę mieć coś takiego

localhost / PROJECT

codeKatalog powinien służyć tylko jako katalogu, w którym przechowywać wszystkie moje projekty.

Czegoś mi brakuje?

użytkownik236603
źródło
1
Czy usunąłeś wwwkatalog? Utworzy dowiązanie symboliczne wewnątrz www, jeśli www istnieje. Powinien utworzyć dowiązanie symboliczne o nazwie www, jeśli www nie istnieje.
Mendhak,
Nie, czy wwwjest nienaruszony. Dowiązanie symboliczne w wwwkatalogu nie służy celowi, o którym wspomniałem
user236603,
Nie możesz mieć dwóch wpisów o tej samej nazwie (w twoim przypadku katalogu i dowiązania symbolicznego) w tym samym katalogu. Co miałbyś na myśli, mówiąc „/var/www/file.txt”? Musisz zdecydować ...
Rmano
Powinieneś ponownie przeczytać komentarz @ Shah ... musisz usunąć, wwwa następnie utworzyć dowiązanie symboliczne.
GabrielF,

Odpowiedzi:

3

Usuń (lub przenieś, dla bezpieczeństwa) wwwkatalog przed utworzeniem dowiązania symbolicznego.

Powinieneś więc mieć /var, ale nie powinno być /var/www. Tylko wtedy powstanie dowiązanie symboliczne wwwwskazujące folder localhost / code / project.

Mendhak
źródło
1
ta zaakceptowana odpowiedź jest zła, przede wszystkim mówisz „usuń” lub „przenieś”, kiedy mówimy o poleceniach, więc powinieneś również wstawić odpowiednie polecenie powłoki. Po drugie, ma nieprawidłowe źródło i cel w poleceniu ln!
sarah.ferguson
1
-1 za udzielenie odpowiedzi na pytanie, które nie zostało zadane i nie wskazanie rzeczywistego problemu, na który cierpiał użytkownik.
Shadur
29

Myślę, że masz ln -s„źródło” i „cel” w niewłaściwy sposób


ŹLE :

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


DOBRZE:

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


skończysz z dowiązaniem symbolicznym w /home/USER/codefolderze wskazującym, var/wwwktóry jest zły.

Na przykład mam folder witryny Sally /home/webs/sallybydesign/

cd /var/www

Nie powinno być folder lub plik nazywa sallybydesignsię /var/wwwponieważ mamy zamiar zrobić jeden.

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

aby zobaczyć nowy plik (dowiązanie symboliczne)

ls -l

zobaczysz plik o nazwie sallybydesign, to jest dowiązanie symboliczne do twojego home/webs/sallybydesignfolderu i jeśli uruchomisz

ls sallybydesign/ 

zobaczysz pliki w swoim home/webs/sallybydesignfolderze.

Jeśli tak, możesz wskazać plik vhost /var/www/sallybydesign, który automatycznie odziedziczy wszystkie /var/wwwuprawnienia apache i rozwiąże wiele problemów.

Andy Mac
źródło
Czy coś się zmieniło w symbolicznym powiązaniu ostatnich aktualizacji z Ubuntu? Wydaje mi się, że nie mogę już tworzyć symlinkowania i otrzymuję słynny błąd 403.
Daniel
@ Daniel, ja też
emrecnl
1
Uprawnienia nie są domyślnie dziedziczone automatycznie. Upewnij się, że chmod 0755 -Rna sallybydesignw powyższym przykładzie, aby umożliwić webserver czytać. Musisz także AllowOverride Allw domyślnym katalogu dla / (zwykle w apache.conf).
Daniel
Jestem sally / mam Too many levels of symbolic links.
Adi Prasetyo