Activer uniquement les modules requis
Objectif : Repérer et activer les modules nécessaires aux hôtes virtuels et à la réécriture.
Vous avez activé les deux fichiers d’hôtes virtuels et rechargé Apache après validation. La prochaine étape consiste à préparer le serveur à organiser certaines URL : pour cela, vous devez savoir quelle fonction fournit un module et vérifier que le module requis est réellement chargé.
Dans ce projet, les deux hôtes sont site.example.test et api.example.test. Comme vous l’avez vu dans « Déclarer un hôte virtuel pour enovatic.be », leur déclaration utilise des fonctions de base d’Apache ; vous n’avez pas à activer un module supplémentaire pour créer un bloc VirtualHost. En revanche, les règles de réécriture étudiées dans les prochaines leçons nécessitent le module mod_rewrite.
Comprendre le rôle d’un module
Un module Apache ajoute une capacité au serveur, par exemple la réécriture des URL ou la prise en charge de connexions TLS. Certains composants nécessaires au fonctionnement courant sont déjà présents dans l’installation ; d’autres peuvent être activés séparément. L’activation rend une capacité disponible, mais n’ajoute pas à elle seule une règle de réécriture à vos hôtes.
Sur Debian et Ubuntu, a2enmod active un module disponible dans l’installation. Pour cette étape, le seul module supplémentaire à préparer est rewrite. Les modules liés à HTTPS ne sont pas nécessaires à l’organisation actuelle des URL : leur activation sera abordée avec l’installation du certificat et la configuration HTTPS.
Vérifier puis activer mod_rewrite
Commencez par demander à Apache la liste des modules chargés. La commande suivante filtre cette liste pour afficher le nom du module de réécriture s’il est présent. Si elle ne renvoie aucune ligne, le module n’est pas chargé ; le code de sortie de grep peut alors être différent de zéro, ce qui est attendu dans ce cas.
sudo apachectl -M | grep rewrite_modulerewrite_module (shared)Si le résultat attendu apparaît, ne relancez pas l’activation : vous pouvez passer directement au test de configuration. Si le module est absent, activez-le avec a2enmod rewrite. Cette commande prépare le chargement du module pour Apache ; elle ne remplace ni le test de syntaxe ni le rechargement du service.
sudo a2enmod rewrite
sudo apachectl configtestEnabling module rewrite.
Syntax OKAppliquer la règle de validation
La configuration du projet a déjà été validée et Apache rechargé à la fin de la leçon précédente. Après toute activation de module, testez à nouveau la configuration avant de recharger : un résultat Syntax OK permet de poursuivre. Si le test signale une erreur, ne rechargez pas ; lisez le message, corrigez le problème, puis relancez le test.
sudo apachectl configtest
sudo systemctl reload apache2
sudo apachectl -M | grep rewrite_moduleSyntax OK
rewrite_module (shared)Le dernier affichage confirme que le module est chargé après le rechargement. Sur les systèmes où le service porte un autre nom, adaptez la commande de gestion du service à votre installation. Vous n’avez modifié ni les fichiers propres aux hôtes virtuels ni la configuration globale ; la prochaine leçon expliquera ce que signifie réécrire une URL, sans encore définir de règle pour le site.
À retenir
- Un module ajoute une capacité à Apache ; les hôtes virtuels courants n’exigent pas d’activer un module supplémentaire.
- La réécriture des URL du projet nécessite mod_rewrite.
- Vérifiez les modules chargés avec apachectl -M.
- Sur Debian ou Ubuntu, activez le module absent avec a2enmod rewrite.
- Après l’activation, exécutez apachectl configtest et ne rechargez Apache qu’après Syntax OK.