Nginx sites-enabled, sites-available: ne peut pas créer de lien doux entre les fichiers de configuration dans Ubuntu 12.04

j'essaie de créer des liens Mous Entre les fichiers de configuration contenant des blocs de serveurs dans les répertoires compatibles avec les sites et les répertoires disponibles dans /etc/nginx/.

La commande que j'utilise est:

sudo ln -s sites-available/foo.conf sites-enabled/

Quand j'exécute ensuite:

ls -l

Le résultat est:

lrwxrwxrwx 1 parallels parallels 27 Aug  6 20:44 immigrationinformation.conf -> immigrationinformation.conf

immigrationinformation.conf -> immigrationinformation.conf la partie a un fusain avec une police de caractère rouge.

quand j'essaie d'accéder à ce lien, on me dit qu'il est cassé.

quand je crée le lien dans le répertoire des sites disponibles, c'est-à-dire

sudo ln -s sites-available/foo.conf sites-available/foo_link.conf

il travaille comme d'habitude. Cependant, si je déplace ceci dans le répertoire activé par les sites, le lien est à nouveau cassé.

je peux créer le lien souple via le gestionnaire de fichiers GUI mais pas via la ligne de commande. Je peux aussi créer des liens durs sans problème.

j'ai suspecté que c'était un problème de permissions, donc j'ai joué avec le paramétrage de toutes les permissions à 777 des deux répertoires et des répertoires eux-mêmes et aussi changer les propriétaires à quelque chose d'autre que la racine, mais toujours sans chance.

Toute aide me serait très apprécié, merci.

38
demandé sur Dan Dascalescu 2013-08-07 00:10:15

1 réponses

Vous devez commencer par comprendre que la cible d'un lien symbolique est un nom de chemin. Et il peut être absolu ou relatif au répertoire qui contient le lien

en Supposant que vous avez foo.conf dans sites-available

cd sites-enabled
sudo ln -s ../sites-available/foo.conf .
ls -l

Maintenant vous aurez un lien symbolique dans les sites activés appelé foo.conf qui a une cible ../ sites-available / foo.conf

juste pour être clair, la configuration normale pour Apache est que les fichiers de configuration les sites vivent dans les sites-disponibles et les liens symboliques pour les sites autorisés vivent dans les sites-autorisés, pointant vers des cibles dans les sites-disponibles. Cela ne semble pas être le cas de la façon dont vous décrivez votre installation, mais ce n'est pas votre problème principal.

si vous voulez qu'un lien symbolique pointe toujours vers le même fichier, quel que soit l'endroit où le lien symbolique est situé, alors la cible doit être le chemin complet.

ln -s /etc/apache2/sites-available/foo.conf mysimlink-whatever.conf

Voici (ligne 1 de) la sortie de mon ls-l /etc/apache2 / sites-enabled:

lrwxrwxrwx 1 root root  26 Jun 24 21:06 000-default -> ../sites-available/default

voir comment la cible du lien symbolique est relative au répertoire qui contient le lien symbolique (il commence par ".."sens remonter d'un répertoire).

les liens durs sont totalement différents parce que la cible d'un lien dur n'est pas une entrée de répertoire mais un Inode de système de classement.

80
répondu Rodney 2013-08-06 20:54:37