Créer un Virtual Host sur un serveur Apache 2
Vous devez vous demander : à quoi ça sert ? Eh bien cette technique permet d’héberger plusieurs petits sites sur un seul serveur, et de faire correspondre chaque dossier à un nom de domaine.
Dans cet article je vais utiliser example.com comme nom de domaine, utilisez votre propre nom de domaine à la place.
Bref, commençons.
Il vous faut d’abord vous connecter en SSH à votre serveur dédié virtuel (ou VPS). D’ailleurs pour faire tout ça il faut que vous soyez à l’aise avec la ligne de commande.
Créer la structure
sudo mkdir -p /var/www/example.com/public_html
Il vous faut ensuite mettre en place les permissions :
sudo chown -R username:username /var/www/example.com/public_html
sudo chmod -R 755 /var/www
Créer une page de démo
nano /var/www/example.com/public_html/index.html
Mettez ceci à l’intérieur.
<html>
<head>
<title>Bienvenue sur example.com!</title>
</head>
<body>
<h1>Un site vachement original!</h1>
</body>
</html>
Créer le Virtual Host
Copiez / Collez en ligne de commande le fichier de configuration global comme ceci :
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Vous devrez l’éditer :
sudo nano /etc/apache2/sites-available/example.com.conf
Mettez ceci à l’intérieur
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
# La directive suivante permet aux permaliens de WordPress de fonctionner correctement
<Directory /var/www/example.com/public_html>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activation du Virtual Host
sudo a2ensite example.com.conf
Désactivation de la configuration globale
sudo a2dissite 000-default.conf
Redémarrer Apache
sudo systemctl restart apache2
Https
Voilà c’est (presque) tout, ça devrait fonctionner… sur http ! Si vous voulez du https, il vous faudra installer un certificat :
sudo certbot --apache -d example.com -d www.example.com
Vous devrez au préalable installer Let’s Encrypt.
Https et WordPress
Pour faire fonctionner les permaliens de WordPress (la réecriture d’url) vous devrez modifier le fichier .conf relatif à votre nom de domaine généré par certbot. Pour ce faire, ouvrez le fichier dans Nano :
sudo nano /etc/apache2/sites-available/example-le-ssl.conf
Et ajoutez ceci à la ligne de Document Root :
<Directory /var/www/example.com/public_html>
AllowOverride All
</Directory>
Et faites un petit redémarrage du serveur :
sudo service apache2 restart
Là c’est vraiment tout ! Bonne journée !