
Prérequis
- Avoir un domaine et une IP fix et l’enregistrement DNS type « A » associé.
- Avoir ouvert le port 80 (et 443 si le support du SSL est activé) sur le firewall.
- Disposer d’une distribution linux à jour (Debian 10 Buster lors de la rédaction du document).
Mise en place du serveur Apache sous LINUX
Première étape, Installation du paquet apache2 sous Linux
apt-get install apache2
Notre serveur est à présent installé et fonctionnel pour l’affichage des pages HTML et nous pouvons tester la page par défaut dans un navigateur http://IP-DU-SERVEUR/
Configuration d’hébergement virtuel par nom de domaine
Ce type d'hébergement est utilisé pour accueillir plus d'un nom de domaine sur le même ordinateur sur la même adresse IP.
Nous créons nos dossiers afin d’accueillir nos sites (dans cet exemple, nous allons créer deux hébergement) :
mkdir /var/www/html/site1 /var/www/html/site2
Puis on donne les droits pour le serveur web :
chown 33:33 /var/www/html/ -R
« Attention, ces deux étapes sont inutiles si la formation sur le serveur FTP a déjà été faite. »
Nous remplissons un fichier index dans chaque site web :
nano /var/www/html/site1/index.html
<html>
<head> <title> Notre serveur Apache </title> </head>
<body> <p> Voici la page d'accueil de votre serveur Apache SITE1 ! </p> </body>
</html>
nano /var/www/html/site2/index.html
<html>
<head> <title> Notre serveur Apache </title> </head>
<body> <p> Voici la page d'accueil de votre serveur Apache SITE2 ! </p> </body>
</html>
Nous réalisons les deux VirtualHost :
nano /etc/apache2/sites-available/site1.conf
<VirtualHost *:80> # On spécifie l’ip ou on autorise toutes les IP suivi de port d’accès
ServerAdmin webmaster@site1.com #Permet à l’utilisateur de contacter le webmaster
ServerName site1.com # Domaine par défaut
ServerAlias www.site1.com # Autre domaine qui afficherons le site
DocumentRoot /var/www/html/site1 # Racine du site web
<Directory /var/www/html/site1> # Indiquez ici le chemin du répertoire apache par défaut
AllowOverride None # Interdit l’utilisation du fichier .htaccess
Order allow,deny # Gestion des droits utilisateur
Allow from all # Donne l'accès au serveur à tous les utilisateurs
</Directory>
</VirtualHost>
nano /etc/apache2/sites-available/site2.conf
Listen 8080
<VirtualHost *:8080>
ServerAdmin webmaster@site2.com
ServerName site2.com
ServerAlias www.site2.com
DocumentRoot /var/www/html/site2
<Directory /var/www/html/site2>
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
« Note : Dans cette configuration, nous avons choisi de rendre accessible le site via le port 8080 »
On désactive la VirtualHost par défaut :
a2dissite 000-default.conf
Et on active les deux nouvelle VirtualHost :
a2ensite site1.conf site2.conf
On relance le serveur Web pour appliquer les changements de configuration :
service apache2 restart
Directory
<Directory> et </Directory> sont utilisés pour "encapsuler" un groupe de directives applicables uniquement au répertoire indiqué ainsi qu'à ses sous-répertoires. Toute directive autorisée dans un contexte de répertoire peut apparaître entre ces deux balises.
Notez que l'accès par défaut d'Apache pour les sections <Directory> est Allow from All. Ceci veut dire que par défaut, Apache desservira tout fichier indiqué par une URL. Nous recommandons de modifier ceci à l'aide d'un bloc tel que :
<Directory /var/www/html/site1>
Order Deny,Allow
Deny from All
</Directory>
Dans l’exemple ci-dessous, Le serveur va suivre les liens symboliques dans le répertoire concerné) :
<Directory /var/www/html/site1>
Options FollowSymLinks
</Directory>
Si plusieurs sections de répertoires pointent sur le répertoire d'un document (ou l'un de ses pères), alors les directives sont appliquées selon la loi de "la plus courte qualification d'abord", combinées aux directives des fichiers .htaccess.
Exemple, avec l'écriture suivante on active le .htaccess
<Directory /var/www/html/site1/img>
AllowOverride All
</Directory>
La documentation complète de « Apache 2.4 » est disponible à cette adresse https://httpd.apache.org/docs/2.4/fr/
|