Installer Nginx, PHP 7.2 et MariaDB

Présentation

Pour monter un serveur Web LEMP sur une VM basée sur Debian Stretch, nous allons installer l’un des meilleurs serveurs Web qui soit : Nginx, ainsi que le serveur base de données MariaDB (dérivé de MySQL depuis que ce dernier a été racheté par Oracle) et PHP 7.2. Enfin nous installerons PhpMyadmin pour aider à la gestion de la base de données.

Puisque les dépôts officiels de Debian sont loin d’être à jour, nous allons utiliser les dépôts de contributeurs. 

Commençons par vérifier la version de ces outils sur le dépôt officiel Debian Stretch :

A l’heure où je rédige cet article, les versions sur le dépôt officiel de PHP et de Nginx sont respectivement la version 7.0 et 1.10.3 alors que sur les sites officiels proposent les versions 7.2 et 1.15.8

Etant donné que PHP est très dépendant du serveur Web, nous allons commencer par installer le serveur Web Nginx.

Installation et configuration de Nginx

Comme pour tout dépôt que l’on souhaite ajouter, il faut commencer par importer les clés de signature du dépôt que nous allons préalablement télécharger

Et ajoutons le dépôt officiel de Nginx

Mettons à jours la liste des paquets

Et recherchons quelle est la dernière version de Nginx proposée

Vérifions la version installé

Démarrons le serveur Nginx

Et vérifions enfin son statut

Si le résultat est Active: active (running) cela signifie que les services sont opérationnels.

Sécuriser Nginx

Une des premières mesures que vous pouvez prendre est de masquer la version Nginx utilisée. Editez le fichier de configuration de Nginx et ajoutez la directive server_tokens

 

Installation et configuration de PHP 7.2

Officiellement le support actif de PHP 7.0 a pris fin en décembre 2017 et les correctifs de sécurité étaient garantis jusqu’en décembre 2018.

Ondřej Surý propose et maintient un dépôt pour la version 7.2. La dernière version stable de PHP proposée est la xxxx

Commencons par installer les paquets requis pour ajouter de nouveaux dépôts :

Importons ensuite les clés de signature des paquets de son dépôt

Puis ajoutons son dépôt dans nos sources

Enfin mettons à jour la liste des paquets

Vérifions maintenant quelle est la nouvelle version de PHP proposée :

Nous pouvons maintenant procéder à l’installation de PHP 7.2 et de certaines des extensions disponibles et utiles :

Quid de php7.2-fpm ? Utile ?

Si vous n’avez pas de serveur Web, il est possible que vous ayez des messages d’erreur car il essaie de redémarrer un serveur qui n’existe pas. Il n’y a rien d’inquiétant.

Si vous aviez déjà la version 7.0 et un serveur web comme Apache par exemple, il vous faut maintenant la désactiver :

Et activer PHP 7.2

PHP-FPM

PHP-FPM (FastCGI Process Manager) est un module qui permet la communication entre le serveur Nginx et PHP. Il est nécessaire de fournir le chemin complet vers le le process.
Puisque Nginx a été installé depuis le dépôt officiel, la configuration est légèrement différente.

  • Les fichiers de configuration des sites Web (les Vhosts) sont stockés dans /etc/nginx/conf.d au lieu de /etc/nginx/sites-enabled. Les fichiers seront nommés site.fr.conf. Pour désactiver un site, il faudra nommer le fichier site.fr.conf.disabled.
  • De plus les fichiers web sont par défaut dans /usr/share/nginx/html/ au lieu de /var/www/html/.

Nous allons modifier tout ca.

Editez le fichier de configuration par défaut qui se trouve dans /etc/nginx/conf.d/default

et remplacez par le contenu suivant :

Redémarrez le service :

Si vous souhaitez vérifier la configuration de PHP, vous pouvez créer un fichier phpinfo.php. Pensez à le supprimer ensuite car ce serait une mine d’informations pour un hacker.

Et ajoutez les lignes suivantes

Lancez ensuite votre navigateur et allez sur http://[VOTRE_IP]/phpinfo.php et vous pourrez consulter la configuration.

Configuration de PHP

Commencons par identifier le fichier de configuration à modifier

Editons le fichier /etc/php/7.2/fpm/php.ini et modifions les directives suivantes :

Editons le fichier /etc/nginx/nginx.conf et ajoutons la directive client_max_body_size

Redémarrons les services

Installation et configuration du serveur MariaDB

La dernière version disponible sur le dépôt Debian est la 10.1.37 mais nous allons installer celle du dépôt officiel de MariaDB, la 10.3.12

Lançons un Update et vérifions la version disponible :

Procédons à l’installation :

Renseignez puis confirmez un mot de passe pour root

 

Executez ensuite ce script pour « sécuriser » le serveur.

Si vous supprimez l’accès distant pour root vous ne pourrez pas vous connecter à phpMyadmin. 

php7.2-fpm.sock failed : Permission denied

Mariadb-server :: connexion refusée lors de l'ajout de la clé

Si vous obtenez une erreur en essayant d’ouvrir la page phpinfo.php, consultez les logs Nginx sur /var/www/log/nginx

La raison est que le groupe www-data ne contient pas l’utilisateur nginx et par conséquent nginx n’est pas autorisé à se connecter au socket PHP-FPM.
Pour résoudre cela, ajouter nginx au groupe www-data

et rechargez nginx

Vous aimerez aussi...