Répertoire Symlink / var / www


17

J'ai essayé de créer un lien symbolique:

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

Après /programming/9104337/create-a-symbolic-link-of-directory-in-ubuntu , j'ai entré la commande suivante:

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

Cependant, le résultat n'est pas ce que j'attends. Mon lien est stocké dans le répertoire / www au lieu de lier le répertoire www lui-même. J'utilise apache comme serveur web local, pour mon cas, je dois accéder à mon code comme

localhost / code / PROJECT

alors que je souhaite avoir quelque chose comme

localhost / PROJECT

Le coderépertoire devrait simplement servir de répertoire où je stocke tous mes projets.

Quelque chose que je manque?


1
Avez-vous supprimé le wwwrépertoire? Il créera un lien symbolique à l'intérieur de www si www existe. Il doit créer un lien symbolique appelé www si www n'existe pas.
Mendhak

Non, wwwil est intact. Le lien symbolique à l'intérieur du wwwrépertoire ne sert pas le but que j'ai mentionné
user236603

Vous ne pouvez pas avoir deux entrées avec le même nom (un répertoire et un lien symbolique dans votre cas) dans le même répertoire. Que voudriez-vous dire lorsque vous dites /var/www/file.txt? Vous devez décider ...
Rmano

Vous devriez relire le commentaire de @ Shah ... vous devez supprimer wwwpuis créer le lien symbolique.
GabrielF

Réponses:


3

Supprimez (ou déplacez, par sécurité) le wwwrépertoire avant de créer le lien symbolique.

Donc, vous devriez en avoir un /var, mais il ne devrait pas y en avoir /var/www. Ensuite, et alors seulement, un lien symbolique appelé wwwsera créé qui pointe vers votre dossier localhost / code / project.


1
cette réponse acceptée est fausse, tout d'abord vous dites "supprimer" ou "déplacer" pendant que nous parlons de commandes, vous devez donc également mettre la commande shell correspondante. Deuxièmement, la source et la destination sont incorrectes dans la commande ln!
sarah.ferguson

1
-1 pour avoir répondu à la question qui n'a pas été posée et pour ne pas avoir signalé le problème réel de l'utilisateur.
Shadur

29

Je pense que vous avez la ln -s«source» et la «cible» dans le mauvais sens


FAUX :

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


DROITE:

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


vous vous retrouverez avec un lien symbolique dans votre /home/USER/codedossier pointant vers var/wwwce qui est faux.

Par exemple, j'ai un dossier pour le site de sally dans /home/webs/sallybydesign/

cd /var/www

Il devrait y avoir aucun dossier ou fichier appelé sallybydesignà /var/wwwparce que nous sommes sur le point d' en faire un.

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

pour voir le nouveau fichier (un lien symbolique)

ls -l

vous verrez un fichier appelé sallybydesign, c'est un lien symbolique vers votre home/webs/sallybydesigndossier et si vous exécutez

ls sallybydesign/ 

vous verrez les fichiers dans votre home/webs/sallybydesigndossier.

Si c'est le cas, vous pouvez pointer votre fichier vhost vers /var/www/sallybydesignet il héritera automatiquement de toutes les /var/wwwautorisations apache et résoudra une foule de problèmes.


Quelque chose a-t-il changé dans la symbolique liant les deux dernières mises à jour d'Ubuntu? Je n'arrive plus à faire le lien symbolique et j'obtiens la fameuse erreur 403.
Daniel

@Daniel moi aussi
emrecnl

1
Les autorisations ne sont pas automatiquement héritées par défaut. Assurez - vous chmod 0755 -Rsur sallybydesigndans l'exemple ci - dessus pour permettre de lire le serveur Web. De plus, vous devez le faire AllowOverride Alldans le répertoire par défaut de / (généralement dans apache.conf).
Daniel

ls sally /, a Too many levels of symbolic links.
Adi Prasetyo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.