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.
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.