Création d'un hôte virtuel
Créer des copies des fichiers /etc/apache2/sites-available/000-default.conf et default-ssl.conf dans le même dossier et les renommer.
Le fichier default-ssl.conf contient la config par défaut d'un hôte écoutant sur le port 443, l'autre est pour le port 80 et contiendra une redirection vers https://mon-site. Chaque site se retrouve donc avec deux fichiers .conf.
Dans le fichier contenant la configuration de l'hôte écoutant le port 443, on doit indiquer le nom d'hôte attendu (ex: sous-domaine.domaine) et le chemin du dossier du site (normalement /var/www/nom-du-site).
La sécurité du site sera grandement améliorée du moment que sa "racine" est située dans un sous-dossier (appelé "public"), on ajoutera alors /public au chemin dans la configuration d'Apache.
├── config
│ └── config.ini
├── public
│ ├── assets
│ ├── css
│ ├── downloads
│ ├── erreur404.html
│ ├── index.php
│ └── js
├── src
│ ├── controller
│ ├── model
│ └── view
Cela fait:
- Il devient alors impossible aux visiteurs de parcourir tous les dossiers du site.
- Seuls les fichiers susceptibles d'être demandés par le client sont visibles.
- Le fichier config.ini qui contient les codes de la BDD, n'est accessible n'est accessible que par PHP (l'utilisateur www-data de Debian).
- l'application n'a plus qu'une seule entrée, le fichier index.php qui est le routeur de l'application, le reste se trouve dans /src.
Pour finir, activer les sites avec la commande "a2ensite" (Debian uniquement) puis recharger la configuration du serveur avec un: systemctl reload apache2
