En root, lancer la commande suivante :
apt install apache2
Afin de vérifier que le serveur Apache est bien opérationnel, il suffit de taper son adresse dans un navigateur. Il devrait afficher « It Works » qui est le contenu de la page /var/www/index.html
.
Les fichiers de configuration du serveur Apache sont dans le dossier /etc/apache2
. Les principaux fichiers sont apache2.conf, ports.conf, envvars et les fichiers de configuration des vhosts.
Dans le dossier /etc/apache2/sites-enabled
, on trouve le fichier de configuration du vhost par défaut qu’on peut supprimer via la commande (ce n’est pas obligatoire) :
a2dissite 000-default
Ce fichier définit la racine d’apache sur /var/www
. Nous allons donc créer un dossier www dans /home et donner les droits nécessaires pour qu’Apache puisse afficher le contenu du dossier.
mkdir /home/www
chown webadmin:www-data /home/www
Attention : Apache est exécuté avec l’utilisateur www-data qui doit pouvoir lire les fichiers des différents projets web pour pouvoir les afficher. Cependant, il ne doit pas avoir le droit d’écriture dessus. En effet, si un utilisateur réussit à pénétrer dans le système, il sera identifié en tant que www-data. Sans les droits d’écriture, il ne pourra pas modifier ou supprimer nos fichiers.
Ensuite, chacun des sites hébergés sur notre serveur aura son sous-dossier dans /home/www.
Nous créons donc un nouveau fichier dans /etc/apache2/sites-available pour chacun des sites hébergés (Vhost) sur le serveur Apache :
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/domaine.tld
Puis on édite le fichier créé. La configuration doit ressembler à ça :
<VirtualHost *:80>
ServerName www.domaine.tld
ServerAlias domaine.tld *.domaine.tld
ServerAdmin webmaster@domaine.tld
ErrorLog /home/www/domaine.tld/logs/error_log
CustomLog /home/www/domaine.tld/logs/access_log combined
DocumentRoot /home/www/domaine.tld
<Directory /home/www/domaine.tld>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
LogLevel warn
</VirtualHost>
Pour activer cette configuration, il suffit de lancer la commande a2ensite domaine.tld
et de recharger la configuration apache avec service apache2 reload
après avoir vérifié qu’il n’y avait pas d’erreur via apache2ctl -t
.
Pour que notre serveur Apache suppporte PHP, nous devons l’installer via la commande :
apt install php7.4 libapache2-mod-php7.4
On peut vérifier que tout fonctionne bien en remplaçant le fichier index.html par défaut par un fichier index.php qui contient le code suivant :
<?php
phpinfo();
?>
Il peut également être possible de séparer l’exécution du code PHP d’Apache. Pour cela on utilise PHP-FPM. La configuration est plus complexe mais les performances sont meilleures.