Leçon 13 / 15

Préparer le déploiement du site

25 min Apache — héberger un site Gratuit

Objectif : Installer les fichiers du site et vérifier que les racines de documents et leurs permissions permettent leur lecture par Apache.

Un hôte virtuel peut être correctement configuré et pourtant afficher une page introuvable ou refuser l’accès si ses fichiers ne sont pas déployés au bon endroit. Dans cette étape, vous préparez les contenus de l’application pour les deux racines du projet et vous vérifiez les droits de lecture avant la recette.

Vérifier les fichiers avant copie

Les racines de documents du projet sont /var/www/application pour site.example.test et /var/www/api pour api.example.test. Avant la copie, placez-vous dans le répertoire qui contient les fichiers publiables et vérifiez explicitement que les éléments attendus sont présents. Les fichiers apache/site-http.conf, apache/site-https.conf et apache/site-secondaire.conf sont des configurations serveur : ils ne doivent pas être copiés dans une racine de documents.

Terminal
pwd
ls -l index.html style.css journal.html
test -s index.html && test -s style.css && test -s journal.html
Résultat attendu
La première commande affiche le répertoire courant. ls affiche les trois fichiers et test termine avec un code de réussite seulement si chacun existe et n’est pas vide.

Installer les contenus dans les deux racines

La page d’index du projet reprend le squelette de référence : les rubriques présentent l’architecture, les hôtes, HTTPS et le diagnostic. Le lien vers style.css et celui vers journal.html sont relatifs ; ces fichiers doivent donc être disponibles dans la même racine que l’index pour que les chemins fonctionnent sur chacun des deux hôtes.

Terminal
sudo install -d -o root -g root -m 755 /var/www/application /var/www/api
sudo install -o root -g root -m 644 index.html style.css journal.html /var/www/application/
sudo install -o root -g root -m 644 index.html style.css journal.html /var/www/api/
Résultat attendu
Les trois fichiers sont copiés dans chaque racine. install crée les répertoires s’ils n’existent pas et applique les propriétaires et permissions indiqués.

Dans cet exemple, les deux hôtes servent le même contenu statique de démonstration, mais chaque hôte conserve sa propre racine. Vous pourrez publier des contenus différents en copiant des fichiers distincts dans chacune d’elles, sans changer les noms de fichiers de configuration. Les permissions 755 sur les répertoires autorisent leur traversée, tandis que 644 permet la lecture des fichiers sans autoriser Apache à les modifier.

Contrôler les droits sur toute l’arborescence

Apache doit pouvoir traverser chaque répertoire parent, puis lire les fichiers demandés. Le contrôle ci-dessous affiche les permissions de chaque élément des deux racines ; vérifiez qu’aucun répertoire ne bloque la traversée et que les fichiers sont lisibles par le processus Apache. Pour le détail du principe de moindre privilège et des permissions de base, reportez-vous à la leçon « Définir les permissions nécessaires ».

Terminal
namei -l /var/www/application/index.html
namei -l /var/www/api/index.html
find /var/www/application /var/www/api -maxdepth 1 -type f -printf '%M %u:%g %p\n'
Résultat attendu
namei détaille les droits de chaque répertoire du chemin jusqu’à index.html. find affiche les permissions, le propriétaire et le chemin des fichiers publiés.

Confirmez enfin que les trois fichiers attendus sont présents dans chaque racine et lisibles. Ces commandes vérifient le contenu publié sans modifier les hôtes virtuels ; pour les noms et les chemins effectifs configurés, reportez-vous aux leçons précédentes sur les hôtes et HTTPS.

Terminal
for racine in /var/www/application /var/www/api; do
  for fichier in index.html style.css journal.html; do
    test -r "$racine/$fichier" || { echo "Fichier absent ou illisible : $racine/$fichier"; exit 1; }
  done
done
echo "Les fichiers attendus sont présents et lisibles."
Résultat attendu
Les fichiers attendus sont présents et lisibles.

À retenir

  • Vérifiez la présence des fichiers avant toute copie.
  • Publiez les contenus dans les deux racines de documents distinctes.
  • Gardez les fichiers de configuration Apache hors des racines publiées.
  • Contrôlez la traversée des répertoires et la lecture des fichiers sans accorder à Apache le droit de les modifier.

Dans la prochaine leçon, vous assemblerez les deux hôtes virtuels et HTTPS, puis vérifierez les réponses obtenues par nom d’hôte.

Envie d'aller plus loin ?

Les cours Enovatic sont gratuits et le resteront. Si vous cherchez un accompagnement encadré, nos formations professionnelles sont animées par les mêmes formateurs.