101 votes

Nginx sites-enabled, sites-available : Impossible de créer un lien souple entre les fichiers de configuration dans Ubuntu 12.04

J'essaie de créer des liens logiciels entre des fichiers de configuration contenant des blocs serveur dans les répertoires sites-enabled et sites-available de /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

où le immigrationinformation.conf -> immigrationinformation.conf La partie a un charbon de bois avec une police de caractères rouge.

Lorsque j'essaie d'accéder à cette liaison douce, on me dit qu'elle est cassée.

Lorsque je crée le lien logiciel dans le répertoire des sites disponibles, c'est à dire dans le répertoire des sites.

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

il fonctionne normalement. Cependant, si je le déplace ensuite dans le répertoire des sites activés, le lien est à nouveau rompu.

Je peux créer le lien logiciel via l'interface graphique du gestionnaire de fichiers, mais pas via la ligne de commande. Je peux également créer des liens physiques sans problème.

Je pensais qu'il s'agissait d'un problème de permissions, j'ai donc essayé de mettre toutes les permissions à 777 pour les deux répertoires et les répertoires eux-mêmes, et aussi de changer les propriétaires pour autre chose que Root, mais toujours sans succès.

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

212voto

Rodney Points 1212

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

En supposant que vous avez foo.conf dans sites-available

Essayez

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

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

Pour être clair, la configuration normale d'Apache est que les fichiers de configuration pour les sites potentiels se trouvent dans sites-available et que les liens symboliques pour les sites activés se trouvent dans sites-enabled, pointant vers les cibles dans sites-available. Cela ne semble pas être le cas de la manière dont vous décrivez votre configuration, 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ù se trouve le lien symbolique, 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

Voyez comment la cible du lien symbolique est relative au répertoire qui contient le lien symbolique (elle commence par "..", ce qui signifie remonter d'un répertoire).

Les hardlinks sont totalement différents car la cible d'un hardlink n'est pas une entrée de répertoire mais un Inode du système de classement.

61voto

Bomjon Bedu Points 109

Le fichier de configuration de mon site est exemple.conf en sites disponibles Vous pouvez donc créer un lien symbolique comme

ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/

4voto

user2270382 Points 1

Vous pouvez écraser le fichier existant ../sites-enabled/myproject en forçant ln comme ceci

sudo ln -sf ../sites-available/myproject ../sites-enabled/

puis

sudo service nginx restart

2voto

embarker Points 168

Pour réduire la saisie manuelle de chaque fichier conf, vous pouvez essayer à partir du dossier sites-enabled :

ln -s ../sites-available/*.conf .
sudo systemctl restart nginx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X