Préparer le déploiement du site
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.
pwd
ls -l index.html style.css journal.html
test -s index.html && test -s style.css && test -s journal.htmlLa 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.
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/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 ».
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'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.
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."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.