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.