Directory Symlink / var / www


17

Ho cercato di creare un link simbolico:

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

Dopo /programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu , ho inserito il seguente comando:

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

Tuttavia, il risultato non è quello che mi aspetto. Il mio collegamento è memorizzato nella directory / www invece di collegare la stessa directory www. Uso apache come server web locale, nel mio caso, devo accedere al mio codice come

localhost / code / PROJECT

mentre vorrei avere qualcosa di simile

localhost / PROJECT

Il code directory dovrebbe servire solo come directory in cui memorizzo tutti i miei progetti.

Qualcosa che mi sto perdendo?


1
Hai cancellato la wwwdirectory? Creerà un collegamento simbolico all'interno di www se www esiste. Dovrebbe creare un collegamento simbolico chiamato www se www non esiste.
Mendhak,

No wwwc'è intatto. Il collegamento simbolico all'interno della wwwdirectory non ha lo scopo che ho citato
user236603,

Non puoi avere due voci con lo stesso nome (una directory e un link simbolico nel tuo caso) nella stessa directory. Cosa vorresti dire quando dici /var/www/file.txt? Devi decidere ...
Rmano,

Dovresti rileggere il commento di @ Shah ... devi eliminare wwwe quindi creare il link simbolico.
GabrielF,

Risposte:


3

Elimina (o sposta, per sicurezza) la wwwdirectory prima di creare il link simbolico.

Quindi, dovresti avere un /var, ma non ci dovrebbe essere /var/www. Quindi, e solo allora, verrà wwwcreato un collegamento simbolico chiamato che punta alla cartella localhost / code / project.


1
questa risposta accettata è sbagliata, prima di tutto dici "cancella" o "sposta" mentre parliamo di comandi, quindi dovresti inserire anche il rispettivo comando di shell. In secondo luogo ha origine e destinazione errate nel comando ln!
sarah.ferguson,

1
-1 per aver risposto alla domanda che non è stata posta e non aver sottolineato il problema reale di cui soffriva l'utente.
Shadur,

29

Penso che tu abbia ln -s"fonte" e "bersaglio" nel modo sbagliato


SBAGLIATO :

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


GIUSTO:

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


finirai con un link simbolico nella tua /home/USER/codecartella che punta avar/www quale è sbagliato.

Ad esempio, ho una cartella per il sito di Sally in /home/webs/sallybydesign/

cd /var/www

Non ci dovrebbero essere cartella o un file chiamato sallybydesignin /var/wwwcausa stiamo per fare uno.

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

per vedere il nuovo file (un link simbolico)

ls -l

vedrai un file chiamato sallybydesign, è un link simbolico alla tua home/webs/sallybydesigncartella e se corri

ls sallybydesign/ 

vedrai i file nella tua home/webs/sallybydesigncartella.

In tal caso, puoi puntare il tuo file vhost su /var/www/sallybydesigne erediterà automaticamente tutte le /var/wwwautorizzazioni di Apache e risolverà un carico di problemi.


È cambiato qualcosa nel simbolico che collega l'ultimo paio di aggiornamenti a Ubuntu? Non riesco più a fare il collegamento simbolico e ricevo il famoso errore 403.
Daniel,

@Daniel anche io
emrecnl

1
Le autorizzazioni non vengono ereditate automaticamente per impostazione predefinita. Assicurati di chmod 0755 -Rsulla sallybydesignnell'esempio di cui sopra per consentire al server web da leggere. Inoltre, è necessario AllowOverride Allnella directory predefinita per / (di solito in apache.conf).
Daniel,

Sally /, ho Too many levels of symbolic links.
Adi Prasetyo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.