J'ai essayé de suivre quelques didacticiels 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)?
La méthode sites-available
Est généralement considérée comme la "méthode Debian":
/etc/Apache2/Apache2.conf
/etc/Apache2/httpd.conf
/etc/Apache2/sites-available
(un par fichier, généralement) Listen
) dans /etc/Apache2/ports.conf
/etc/Apache2/mods-available
Vous pouvez les manipuler avec des liens symboliques ou avec la série de commandes a2
:
a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>
Selon vos préférences personnelles, vous pouvez redémarrer Apache à l'aide de apachectl
, /etc/init.d/Apache2 (start|stop|reload|restart)
ou service Apache2 (start|stop|reload|restart)
Un exemple où vous utiliseriez httpd.conf
Au lieu d'une entrée vhost serait pour une règle de redirection ou de réécriture globale, par exemple. Autres informations - en général, vous devez laisser Apache2.conf
Seul et vous assurer de configurer un schéma de dénomination cohérent pour les hôtes dans le répertoire sites-available
.
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 dispose d'un guide pratique pour les noms et emplacements des fichiers de configuration.
Étant donné que les fichiers de configuration peuvent contenir des directives include
, 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 désormais dans /etc/Apache2/sites-available/default
.
Je peux voir que cela est cohérent avec Ubuntu documentation pour Apache que je vous recommande de lire en premier. Si vous avez d'autres documentations pour des versions plus anciennes d'Apache (ou d'autres distributions), vous pouvez adapter ces informations pour qu'elles soient organisées de manière organisée dans Ubuntu.