====== Apache2 ======
* Objet : Présentation du serveur web Apache2
* Niveau requis : {{tag>avisé}}
* Commentaires : //Une présentation rapide d'Apache2 avec des liens vers des tutos et de la documentation pour en apprendre plus.//
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi : {{tag>}}
* Création par [[user>captnfab]] 01/10/2023
* Testé par <...> le <...>
* Commentaires sur le forum :
===== Introduction =====
Apache2 est un serveur web, c'est à dire un logiciel qui répond aux requêtes [[https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol|HTTP]] et [[https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol_Secure|HTTPS]] qui lui sont posées par un client HTTP, par exemple un navigateur comme [[:doc:reseau:firefox|Firefox]], ou un outil tel [[:doc:reseau:wget|wget]].
Il possède plusieurs fonctionnalités intéressantes.
* Il peut tout simplement servir des fichiers statiques (HTML, CSS, JPEG, etc.) stockés dans un dossier. C'est le comportement par défaut après une installation propre.
* Il peut s'occuper de recevoir toutes les requêtes venant d'une interface publique, comme ''https://debian-facile.org/'' et les retransmettre vers des serveurs spécialisés pour telle ou telle tâche (collab, forum, wiki, etc.). On parle alors de //reverse proxy//, et en particulier de //point de terminaison SSL// si les requêtes arrivent et partent en HTTPS de l'extérieur, mais que les échanges à l'intérieur se font simplement en HTTP.
* Il peut s'occuper d'exécuter du code source (ex. PHP) ou des binaires pour que ces applications génèrent dynamiquement du HTML ou d'autres formats de fichiers à renvoyer à l'utilisateur.
* Il peut servir plusieurs sites web en parallèle, en se fiant au nom d'hôte demandé.
Et bien sûr, toutes ces fonctionnalités peuvent être utilisées en parallèle, via l'activation ou l'activation de modules.
===== Installation =====
apt install apache2
===== Utilisation =====
L'utilisation étant complexe, elle fera l'objet de tutoriels dédiés. Ne sont présentés ici que les commandes de base.
==== Le service apache2 ====
Par défaut après l'installation, //apache2// se lance automatiquement à chaque démarrage. Comme pour tous les services, on peut l'activer, désactiver, redémarrer, recharger via //systemctl//.
Exemple: pour recharger la configuration sans redémarrer le serveur:
systemctl reload apache2
On note que lorsque l'on active ou désactive des modules, un redémarrage (''restart'') est nécessaire plutôt qu'un simple rechargement (''reload'').
Les logs du serveur sont accessibles via
journalctl -xeu apache2
et les logs des différents sites sont en principe accessibles dans ''/var/log/apache2/''.
==== Commandes d'administration ====
Les différents sites (//VirtualHost//s) sont à configurer dans ''/etc/apache2/sites-available/'', et on active/désactive le fichier ''/etc/apache2/sites-available/debian.conf'' via les commandes
a2ensite debian
a2dissite debian
De même, les différents modules et configurations sont dans ''/etc/apache2/mods-available/'' et ''/etc/apache2/conf-available/'' et s'activent/désactive via
a2enmod nom_du_module
a2dismod nom_du_module
a2enconf nom_de_la_conf
a2disconf nom_de_la_conf
===== Tutoriels =====
Les tutoriels suivants sont probablement obsolètes.
* [[:doc:reseau:apache2:multisite|Configuration multi-site]]
* [[:doc:reseau:apache2:tp01|Un TP]]
* [[:doc:reseau:apache2:redirection|Configuration d'une redirection]]
* [[:doc:reseau:apache2:apache2.4|Configuration Apache 2.4]]