Activité Apache2
Situation
Votre entreprise vous a chargé de tester l’intégration d’Apache2 dans sa ferme de serveur. Pour cela, on vous demande d’installer et de configurer, sur un serveur Linux, Apache2.
Apache est un serveur web (http Server) développé par la fondation Apache. Il s’agit d’un logiciel libre. C’est le serveur web le plus populaire, même si depuis quelque temps il a été rattrapé par un autre logiciel libre : Nginx.
Le serveur Apache existe depuis 1995.
Son principe repose sur des modules permettant d’étendre ses fonctionnalités.
Dans cette activité, nous allons configurer une version de base d’Apache, et activer le support du langage PHP.
Consigne
- Lisez les instructions ci-après et réalisez les tâches demandées.
- Votre machine virtuelle doit avoir les caractéristiques suivantes :
- Paramètres de base de la machine :
- Serveur : Ubuntu22.04LTS server, sans interface graphique
- Hostname : ubuntu
- Username : epai
- Password : epai1.2
- L’utilisateur epai doit faire partie du groupe sudo
Objectifs
À la fin de ce travail, vous devez :
- Être capable d’installer et de configurer Apache2.
- Être capable d’installer et de configurer PHP.
Installation d’Apache
Comme pour toutes interactions avec le système, il est nécessaire d’avoir des privilèges étendus. La plupart des commandes sont donc précédées de sudo.
sudo apt install apache2
Sur le PC hôte, dans VirtualBox, configurez la machine virtuelle en créant une redirection de port afin d’accéder au serveur web depuis le navigateur local. Exemple :
Redirigez le port tcp 8080 vers le port tcp 80
Dans ce cas, dans le navigateur, il faudra saisir l’adresse comme suit : http://localhost:8080
La page par défaut de Apache2 doit s’afficher :
Manipulation du serveur :
Pour arrêter le serveur, vous avez à choix une des commandes suivantes :
sudo systemctl stop apache2
ou
sudo apachectl stop
Le navigateur ne doit plus rien afficher :
Pour démarrer le serveur, adapter les commandes précédentes en remplaçant stop par start.
sudo systemctl start apache2
ou
sudo apachectl start
Vérifiez le statut du serveur :
sudo systemctl status apache2
Quelle est la version du serveur installé ?
sudo apache2 –v
À l’aide de la commande tail lire le contenu des fichiers journaux. Fichier d’erreur par défaut : /var/log/apache2/error.log
Fichier d’accès par défaut : /var/log/apache2/access.log
Dans le fichier des accès, repérez la requête effectuée depuis le navigateur.
Configuration d’Apache2
Les fichiers de configuration se trouvent dans /etc/apache2.
Selon l’OS, la structure des fichiers de configuration peut différer. Sous les systèmes Debian et dérivés, la structure est définie ainsi :
- apache2.conf : fichier principal
- ports.conf : gestion des ports d’écoute (TCP)
- mods-enables : la gestion des modules
- conf-enables : gestion de la configuration globale
- sites-enabled : gestion des sites (hôtes virtuels)

Dossier des pages web
Recherchez dans la configuration où se trouvent les fichiers des sites web, en particulier la page par défaut affichée :
Lisez le fichier sites-enabled/000-default.conf pour trouver l’information. Il s’agit de la racine où se trouvent les pages web, soit la directive DocumentRoot.
Votre réponse : ____________________________________
Port d’écoute
Changez le port d’écoute du serveur, dans le fichier ports.conf.
Rechargez la configuration du serveur (sans le redémarrer) :
sudo systemctl reload apache2
Vérifiez avec le navigateur que la connexion avec le serveur Apache est impossible.
Adaptez (ou ajoutez) une redirection de port dans VirtualBox, afin d’atteindre le serveur via le nouveau port.
Vérifiez avec le navigateur que la page par défaut s’affiche à nouveau.
Annonce dans les en-têtes de réponse
Depuis le navigateur, appelez une page qui n’existe pas sur le serveur. Exemple : test.html.
Une erreur “http 404 Not found” doit être retournée.
Avec le message d’erreur, nous voyons la « signature » du serveur.
Cachons cette signature !
Pour cela, ouvrez le fichier de configuration security.conf.
Remplacez ServerSignature On par Off et relancez le serveur.
Depuis le navigateur, appelez à nouveau la page inexistante.
Le message d’erreur 404 est toujours présent, mais la signature du serveur a disparu.
PHP
Installation de PHP et configuration d’Apache pour interpréter les scripts PHP.
Installation de PHP
Pour installer PHP :
sudo apt install php
Dans le dossier DocumentRoot créer un fichier info.php, et y mettre simplement le contenu suivant :
<?php phpinfo(); ?>
Aller sur le navigateur est appeler le fichier info.php http://localhost:{votre_port}/info.php
La page n’affiche pas les informations attendues :
Pourquoi ?
PHP est un langage de script utilisable en ligne de commande (comme perl, python, …). Afin qu’il puisse être interprété par Apache, il faut encore que vous installiez et activiez le module apache compatible.
sudo apt install libapache2-mod-php
Ensuite, vous devez recharger le serveur apache :
sudo systemctl reload apache2
Cette fois, le navigateur affiche bien la page d’information de PHP.
Un petit script pour tester l’installation
Écrivez un petit script PHP (mult.php) qui affiche la table des multiplications (de 1 à 12).
Le résultat doit ressembler à ceci :