Comment configurer Apache (sites disponibles vs httpd.conf)

27

J'ai essayé de suivre quelques tutoriels de base expliquant comment installer et exécuter Apache (sur Ubuntu, sur Amazon). J'ai surtout été vide, car tous les tutoriels m'ont dit de configurer httpd.conf (pour ajouter DocumentRoot, etc.).

Je suis maintenant tombé sur un didacticiel qui m'a dit d'ajouter des configurations de site au répertoire des sites disponibles (sous / etc / apache), puis de créer un lien symbolique vers celui-ci à partir des sites activés. La configuration de cette manière semble fonctionner.

Mais maintenant je suis confus - comment suis-je censé configurer Apache? La plupart des tutoriels semblent toujours dire que je devrais utiliser httpd.conf. Lequel devrais-je utiliser? Quelle est la différence? Pourquoi tous les tutoriels sont-ils "faux" (s'ils le sont)?

Edan Maor
la source

Réponses:

35

La sites-availableméthode est généralement considérée comme la "Voie Debian":

  • configuration "principale" dans /etc/apache2/apache2.conf
  • configuration "utilisateur" dans /etc/apache2/httpd.conf
  • vhosts dans les /etc/apache2/sites-availablefichiers (un par fichier, généralement)
    • vous voudrez peut-être les numéroter, par exemple 00-domain.com, 01-otherdomain.com
  • ports ( Listendirectives) dans/etc/apache2/ports.conf
  • mods dans /etc/apache2/mods-available

Vous pouvez les manipuler avec des liens symboliques ou avec la a2série de commandes:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

En fonction de vos préférences personnelles, vous pouvez redémarrer Apache à l' aide apachectl, /etc/init.d/apache2 (start|stop|reload|restart)ouservice apache2 (start|stop|reload|restart)

Un exemple où vous utiliseriez httpd.confau lieu d'une entrée vhost serait pour une règle de redirection ou de réécriture globale, par exemple. Autres informations - en règle générale, vous devez laisser apache2.confseul et vous assurer de configurer un schéma de dénomination cohérent pour les hôtes dans le sites-availablerépertoire.

Sam Halicke
la source
Excellent résumé! Beaucoup plus clair et concis que celui sur lequel je travaillais. +1.
Steven lundi
2
Les sites disponibles permettent une bonne modularisation de la configuration. Il vous permet de vous concentrer facilement sur la configuration d'un seul site. Cela facilite également la comparaison de sites sur un serveur ou le déplacement ou la réplication d'un site entre serveurs.
BillThor
+1. Lorsque vous avez besoin de maintenir ces configurations, accédez à «sites activés» au lieu de «sites disponibles» et accédez-y directement à partir de là. De cette façon, vous pourrez toujours déterminer et accéder aux configurations de site actuellement utilisées.
Ross
9

L'emplacement et l'organisation des fichiers de configuration sont configurables et peuvent changer entre les versions principales ou entre les distributions.

Le wiki Apache contient un guide pratique sur les noms et les emplacements des fichiers de configuration.

Étant donné que les fichiers de configuration peuvent contenir des includedirectives, des parties de la configuration peuvent être séparées en fichiers plus petits. Étant donné qu'un fichier de configuration Apache standard contient de nombreux commentaires et de nombreux éléments standard, il est logique de séparer les parties que vous êtes le plus susceptible de modifier.

Le nom du fichier de configuration principal peut être modifié au moment de la compilation et dans les versions récentes, il est passé de httpd.confàapache2.conf

Au fil des ans, l'organisation des fichiers de configuration inclus a également évolué.

Par exemple, j'ai installé Apache2 sur un système basé sur Ubuntu en utilisant apt-get install apache2- voici les fichiers inclus

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Ainsi, les quelques paramètres de configuration qui vous intéresseront probablement le plus sont maintenant /etc/apache2/sites-available/default.

Je peux voir que cela est cohérent avec la documentation Ubuntu pour Apache que je vous recommande de lire en premier. Si vous avez une autre documentation pour les anciennes versions d'Apache (ou d'autres distributions), vous pouvez adapter ces informations en fonction de la façon dont les choses sont organisées dans Ubuntu.

RedGrittyBrick
la source
-2

Apache sous linux peut être installé de deux types. l'un est par apt-get et l'autre télécharge le fichier tar et l'extrait .... Ainsi, dans le processus apt-get, les sites sont servis depuis le dossier / etc / apache2 / sites-enabled car chaque site servant au monde extérieur est configuré dans Exemple de fichiers .conf 000-default.conf est un site par défaut activé pour afficher les travaux d'Apache.

ainsi en créant n'importe quel fichier .conf dans les sites activés et en le dirigeant vers l'emplacement du contenu .. ce site est servi.

Donc, pour ajouter un nouveau site statique, un nouveau fichier .conf doit être créé dans un dossier compatible avec les sites avec un nom quelconque exemple.conf. et doit y ajouter les lignes ci-dessous

ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log combiné

Où as, *: 80 indique "ouvert sur le monde via le port 80" DocumentRoot / var / www / html indique "chemin du contenu du site"

Basutkar. Karthik
la source
C'est faux et trompeur. Vous créez vos fichiers dans des sites disponibles pour que les outils (recommandés) tels que a2ensite puissent fonctionner. En règle générale, vous créez un lien symbolique entre ces fichiers de configuration à l'aide de a2ensite et les sites activés. apt-get n'a rien à voir avec la configuration de vos sites.
HörmannHH