But des répertoires debian «sites-available» et «sites-enabled»

60

Quelqu'un peut-il me dire en un mot quel est le but de ces deux répertoires dans Debian?

/etc/apache2/sites-enabled
/etc/apache2/sites-available

Je remarque que diffing sites-available/000-defaultet sites-enabled/defaultmontre qu'ils sont identiques.

Ce qui donne?

aaaidan
la source

Réponses:

63

sites-available contient les fichiers de configuration apache de chacun de vos sites. Par exemple:

<VirtualHost *:80>
  ServerName site.mysite.com
  ServerAdmin [email protected]

  DirectoryIndex index.php
  DocumentRoot /home/user/public_html/site.mysite.com/public

  LogLevel warn
  ErrorLog /home/user/public_html/site.mysite.com/logs/error.log
  CustomLog /home/user/public_html/site.mysite.com/logs/access.log combined
</VirtualHost>

Lorsque vous souhaitez ajouter un nouveau site (par exemple, site.mysite.com), vous l'ajoutez ici et utilisez:

a2ensite site.mysite.com

Pour activer le site. Une fois le site activé, un lien symbolique vers le fichier de configuration est placé dans le répertoire activé par les sites, indiquant que le site est activé.

Jason Leveille
la source
12
Si vous souhaitez désactiver un site, vous devez lancer a2dissite site.mysite.com
2
a2ensiteet a2dissitesont situés dans /usr/sbinlesquels ne figure pas actuellement dans le chemin utilisateur par défaut afin que la complétion par onglet ne fonctionne pas. Lorsque vous tapez sudo a2et appuyez sur la touche de tabulation, on vous proposera à la fois a2ensiteet a2dissite.
Stefan Schmidt
22

La logique du système est plus importante que la mécanique du système ...

Debian fournit deux répertoires distincts. Ainsi, si vous gérez automatiquement vos configurations Apache, vous pouvez simplement laisser tous les hôtes vhosts se déposer sites-availablesur toutes vos machines, puis activer les hôtes individuels sur le serveur qui les servira. Cela signifie également que vous pouvez désactiver presque instantanément un site s'il cause des problèmes ( a2dissite example.com; /etc/init.d/apache2 reload).

femme
la source
1
Celui-ci est la vraie réponse pour la question originale.
Silpol
5

Pour ajouter à ceux ci-dessus, le fichier sites-enabledest un lien symbolique vers le sites-availablefichier:

ls -l /etc/apache2/sites-enabled/

Ce n'est pas juste le même contenu, c'est le même fichier réel!

JakeGould
la source
5

Une information important:

Vous devez éditer les fichiers uniquement dans le sites-availablerépertoire.

Ne modifiez jamais les fichiers à l'intérieur du sites-enabledrépertoire, sinon vous risquez d'avoir des problèmes si votre éditeur manque de mémoire ou, pour quelque raison que ce soit, il reçoit un SIGHUP ou un SIGTERM.

Par exemple: si vous utilisez nanopour éditer le fichier sites-enabled/defaultet que celui-ci manque de mémoire ou, pour quelque raison que ce soit, il reçoit un SIGHUP ou un SIGTERM, il nanocréera alors un fichier d’urgence appelé default.savedans le sites-enabledrépertoire. Donc, il y aura un fichier supplémentaire dans le sites-enabledrépertoire. Cela empêchera Apache ou NGINX de démarrer. Si votre site fonctionnait, ce ne sera plus le cas. Vous aurez du mal à trouver, dans les journaux, un élément lié au default.savefichier, puis à le supprimer.

Dans l'exemple ci-dessus, si vous aviez édité le fichier à l'intérieur du sites-availablerépertoire, rien de grave ne serait arrivé. Le fichier sites-available/default.saveaurait été créé, mais cela ne ferait aucun mal à l'intérieur du sites-availablerépertoire.

Vini
la source
Très intéressant! Quelqu'un d'autre peut-il confirmer cela?
aaaidan
Voici un exemple de personne ayant ce problème: stackoverflow.com/questions/36808705/…
Vini
Quelque chose de similaire s'est passé dans le lien suivant. Voir le commentaire Melvyn dans la réponse, à propos de la modification de fichiers sur des sites activés. stackoverflow.com/questions/26210115/…
Vini