Installation de Nginx, MySQL, PHP (LEMP) sur CentOS 7

Installer nginx, MySQL, PHP (LEMP) sur CentOS 7 / CentOS 6 / Redhat

Introduction

   Le logiciel LEMP est un groupe de logiciels libres qui sont habituellement installés en même temps pour permettre aux sites Web et aux applications Web dynamiques d’un serveur hôte. Ce terme est en fait un acronyme qui représente le système d’exploitation Linux, avec le serveur web ENginx. Les données du site sont stockées dans une base de données MySQL (ou MariaDB) et le contenu dynamique est traité par PHP.

   Nous allons commencer ce guide LEMP avec PHP 7.4 installé sur un serveur CentOS 7, en utilisant MySQL comme système de gestion de base de données.

Requirement

Vous devez avoir un compte d’utilisateur non root différent sur votre serveur avant de procéder à cette instruction.

Étape 1 – Installation de Nginx

Nous utiliserons Nginx, un serveur web haute performance, pour servir les pages web aux visiteurs du site. Pour obtenir la version la plus récente de Nginx, nous allons d’abord installer le dépôt EPEL, qui offre un logiciel supplémentaire pour le système d’exploitation CentOS 7.

Exécuter la commande suivante pour ajouter le dépôt EPEL CentOS 7 :

$ sudo yum install epel-release

Parce que nous utilisons la commande sudo, ces commandes sont exécutées avec les privilèges root. Il vous demandera votre mot de passe d’utilisateur normal afin de confirmer que vous avez l’autorisation d’exécuter des commandes avec des capacités racine. Lorsque vous êtes invité à confirmer l’installation, appuyez sur Y pour continuer.

Maintenant que le dépôt EPEL a été installé sur votre serveur, utilisez la commande yum suivante pour installer Nginx :

$ sudo yum install nginx

Démarrer Nginx une fois l’installation terminée :

$ sudo systemctl start nginx

Vous pouvez immédiatement tester que tout fonctionne correctement en accédant à l’adresse IP publique de votre serveur dans votre navigateur web.

Naviguer dans un navigateur Web :
http://server_public_IP/

La page Web par défaut de CentOS 7 Nginx sera affichée de démonstration et de test.

Ça devrait ressembler à cette page :

Nginx Default html on centos and redhat

Si vous accédez à cette page, votre serveur web a été déployé avec succès.

Exécutez la commande suivante pour activer Nginx au démarrage :

$ sudo systemctl enable nginx

Étape 2 – Installation de MySQL

Pour obtenir un guide complet, suivez les étapes dans Installation de MySQL sur CentOS/RHEL 7/6 & Fedora 31/30.

Étape 3 – Installer PHP

PHP est la partie de notre système qui va traiter le code afin de montrer le contenu dynamique. Il peut exécuter des scripts, se connecter à nos bases de données MySQL pour l’information, puis fournir les données traitées à notre serveur web pour l’affichage.

Parce que la version PHP fournie par défaut sur les serveurs CentOS 7 est obsolète, nous devrons installer un dépôt de paquets tiers pour télécharger et installer PHP 7+ sur votre serveur CentOS 7. Remi est un dépôt de paquets important qui offre les versions PHP les plus récentes pour les machines CentOS.

Exécuter la commande suivante pour installer le dépôt Remi pour CentOS 7 :

$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Une fois l’installation terminée, vous devez exécuter une commande pour activer le dépôt contenant votre version préférée de PHP. Pour vérifier que les versions PHP 7+ sont disponibles dans le dépôt Remi, exécutez :

$ yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64

Vous verrez le résultat suivant :

Output :
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * remi-safe: mirrors.ukfast.co.uk
Available Packages
php70.x86_64            2.0-1.el7.remi                    remi-safe
php71.x86_64            2.0-1.el7.remi                    remi-safe
php72.x86_64            2.0-1.el7.remi                    remi-safe
php73.x86_64            2.0-1.el7.remi                    remi-safe
php74.x86_64            1.0-3.el7.remi                    remi-safe
php80.x86_64            1.0-3.el7.remi                    remi-safe

Dans ce tutoriel, nous installerons PHP 7.4. Pour obtenir PHP 7.4, utilisez la commande suivante pour activer le bon paquet Remi :

$ sudo yum-config-manager --enable remi-php74

Maintenant, nous pouvons utiliser yum pour installer PHP comme d’habitude. La commande suivante installera tous les paquets nécessaires pour que PHP 7.4 fonctionne dans Nginx et soit connectée aux bases de données MySQL :

$ sudo yum install php php-mysqlnd php-fpm

Pour vous assurer que PHP est installé comme votre version préférée, exécutez :

$ php --version
Output :
PHP 7.4.8 (cli) (built: Jul 9 2020 16:09:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
  with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

PHP a maintenant été installé avec succès sur votre machine. Ensuite, nous devons apporter quelques modifications à la configuration par défaut. Pour faciliter l’édition de fichiers sur CentOS, nous allons d’abord installer nano, un éditeur de texte plus convivial que vi :

$ sudo yum install nano

Modifier le /etc/php-fpm.d/www.conf fichier de configuration dans nano ou votre éditeur de texte préféré :

$ sudo nano /etc/php-fpm.d/www.conf

Examinez maintenant les directives utilisateur et de groupe. Si vous utilisez nano, vous pouvez rechercher ces phrases dans le fichier courant en utilisant CTRL + W.

Output :
…
user = apache
group = apache

Nous devons les changer pour nginx⁣ :

Output :
…
user = nginx
group = nginx

Locate the listen directive next. php-fpm will listen on a given host and port via TCP by default. We wish to update this option so that it listens on a local socket file, as this increases the server’s overall speed.

Trouver les directives listen.owner, listen.group, and listen.mode. Par défaut, ces lignes sont commentées. Supprimer le précédent ; symbole au début de la ligne pour décommenter. Après cela, mettre le propriétaire et le groupe à nginx.

Changer la ligne qui contient la directive d’écoute pour :

listen = /var/run/php-fpm/php-fpm.sock;
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Lorsque vous avez terminé l’édition, enregistrez et quittez le fichier.

Exécutez la commande suivante pour activer et lancer le service php-fpm :

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm

Étape 4 – Configurer Nginx pour servir les pages PHP

Nous avons actuellement tous les composants nécessaires en place. La seule chose qui reste à faire est de demander à Nginx d’utiliser notre processeur PHP pour le contenu dynamique.

Nginx fournit un répertoire dédié où nous pouvons configurer chaque site hébergé comme un fichier de configuration distinct en utilisant un bloc serveur. Ceci est comparable aux hôtes virtuels d’Apache.

Pour continuer, créez un nouveau fichier dans le /etc/nginx/conf.d répertoire :

$ sudo nano /etc/nginx/conf.d/default.conf

Copiez le bloc de définition du serveur PHP ci-dessous dans votre fichier de configuration, et n’oubliez pas de modifier la directive server_name avec le nom de domaine ou l’adresse IP de votre serveur :

server {
    listen       80;
    server_name  server_public_IP;
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    
    location = /50x.html {
        root /usr/share/nginx/html;
    }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Lorsque vous avez terminé l’édition, enregistrez et quittez le fichier.

Enfin, redémarrez Nginx pour appliquer les modifications :

$ sudo systemctl restart nginx

Étape 5 – Exécutez PHP sur Nginx.

Nous allons maintenant créer une page de test PHP pour nous assurer que le serveur web fonctionne correctement. Dans le /usr/share/nginx/html répertoire, créer un nouveau fichier PHP nommé info.php⁣ :

$ nano /usr/share/nginx/html/info.php
<?php
phpinfo();

Lorsque vous avez terminé, enregistrez et quittez le fichier.

Maintenant, accédons au fichier info dans :

http://server_public_IP/info.php

Php info file Nginx

Laisser un commentaire