[Debian 8] Installer et configurer un serveur web Apache2 avec PHP7 et MariaDB

Le serveur Apache2 est le serveur web sous Linux qui fait partie des plus « historiques ». Connu par la majorité des sysadmin, ce serveur web est simple d’installation mais aussi d’utilisation.

Dans cette procédure, vous pourrez installer un serveur web appelé « LAMP« , pour « Linux Apache MySQL PHP« . Il s’agit d’un système complet pour avoir un serveur web doté de toutes ses fonctionnalités pour assurer la distribution des pages web.
N’utilisant pas MySQL, je l’ai remplacé par MariaDB – les commandes SQL seront les mêmes entre les serveurs, aucune crainte à avoir sur ce point. De plus, PHP 5.6 tant à être obsolète – l’arrivée de PHP7 fin 2015 amène un nouveau souffle à ce langage complet du web !


I. Installation d’Apache2

Les paquets nécessaires pour Apache sont déjà présents dans les dépôts officiels de Debian. J’ai utilisé une VM Debian 8.4 pour cet article, avec les dépôts « Jessie stable non-free ». Pour se faire, il suffit d’exécuter un apt install avec les paquets nécessaires :

Explications

Vous remarquerez qu’il y a le « serveur de base » qu’est « apache2 » et son binaire, mais aussi ses outils (utils) et le module « prefork ». Il existe trois modules pour la gestion des ressources du serveur web :

  • Prefork (mpm-prefork) : ce socket crée plusieurs processus indépendants, gérer par un processus « maître ». Il n’est pas question d’utiliser des threads dans cette configuration.
  • Worker (mpm-worker) : « multi processus et multi thread », Chaque requête sur le site web créera / utilisera un ou plusieurs thread, qui seront eux-mêmes inclus dans un ou plusieurs processus (des limites sont définies dans les fichiers de configuration)
  • Event (mpm-event) : Une version alternative au Worker (même architecture), sauf que certains threads vont être optimisés / attribués uniquement pour certaines requêtes et être regroupés dans un même processus.

Dans un soucis de compatibilité et de rapidité, j’ai préféré utiliser le module « Prefork« . D’après la documentation d’Apache2 et de nombreux avis sur le web, le module prefork s’adapte à toutes les applications et tous les besoins. C’est le plus simple à mettre en place et à utiliser. Son activation va se faire peu après la configuration initiale du serveur web.


II. Configuration préliminaire

Avant de se lancer dans l’installation de vos applications web, il faut configurer à minima le fichier « apache2.conf », notamment pour éviter les erreurs « unknown server name » (nom du serveur inconnu) :

La variable n’est pas présente par défaut dans ce fichier, il faut alors la créer – qu’importe l’emplacement où se trouve cet attribut.

Il faut garder les guillemets et remplacer « ndd.fr » par votre nom de domaine. Si les tests sont effectués sur une machine locale ou dans un réseau local non routable, vous pouvez y saisir l’adresse IP ou le nom NetBIOS du serveur web.


III. Modification du « mpm » & tests

C’est la principale modification que j’effectue dans ce fichier, je ne suis pas allé plus loin pour l’instant : je souhaite avoir un serveur web rapidement mis en place et fonctionnel simplement.
Lors de l’installation d’Apache2, nous avons téléchargé le paquet « mpm-prefork », mais celui-ci n’est pas activé par défaut. La raison est simple : lorsque Apache2 est installé, il utilise automatiquement le premier « mpm » qui lui est installé, il s’agit de « mpm-event ». Vous devez donc éteindre le « mpm-event » et démarrer le « mpm-prefork » via cette commande :

Pour s’assurer du bon fonctionnement du système, vous pouvez redémarrer immédiatement le serveur web, via systemd ou initd :

Le serveur étant très léger, le redémarrage du service se fait très rapidement.
Je vous conseille de contrôler la bonne exécution d’Apache en utilisant l’outil intégré au système :
apachectl

Comme vous pouvez le voir sur l’image ci-dessus, le serveur web est fonctionnel, dans sa dernière version disponible sur les dépôts Debian Jessie stable. Le « server mpm » est intéressant à voir : c’est via cette option que vous contrôlerez le mpm actuellement utilisé – comme nous avons effectué la commande a2enmod plus haut, le serveur est correctement initié avec le mpm-prefork.
Vous aurez aussi d’autres informations, concernant les modules qui ont été ajoutés lors de la compilation du serveur web


IV. Installation et activation de PHP7

Comme tout bon serveur web, Apache2 sait lui aussi utiliser le langage PHP pour les scripts / applications / sites web.
La procédure pour l’installation de PHP7 est la même que pour nginx – un article est disponible à cette adresse – CZS.

Toutefois, il y a une spécificité pour Apache2, il faut installer un paquet complémentaire :

php7_apache2Une fois l’installation effectuée, vous pouvez redémarrer le service PHP7-fpm, pour s’assurer que tout soit en ordre :


V. Installation de MariaDB

Enfin, l’installation du serveur SQL (ici MariaDB) se fait lui aussi rapidement. Un article a été saisit à cette adresse – CZS.
Je ne détaillerai pas l’installation du serveur SQL dans cet article.

Enfin, vous pourrez ouvrir un navigateur en y saisissant l’IP de votre serveur web – la page ci-dessous devrait s’afficher :

index_apache2

Votre nouveau serveur web est prêt à l’emploi !

Julien H

Passionné depuis toujours par l'informatique, je transforme ma passion en expertise. J'utilise quotidiennement les outils et systèmes Microsoft. Je ne délaisse pas mon côté ouvert, notamment via l'utilisation des OS Debian et Archlinux. L'infosec m'ouvre les yeux sur les enjeux actuels et futurs de l'IT.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment les données de vos commentaires sont utilisées.

Close
Close