Comment installer la pile LEMP (Nginx, MySQL, PHP v7) sur CentOS 7
Qu'est-ce que LEMP ?
LEMP est un ensemble de programmes qui fonctionnent ensemble pour servir des sites Web ou des applications Web dynamiques. Il se compose de Linux (le système d'exploitation du serveur), de Nginx (application serveur Web), de MySQL (système de gestion de base de données) et de PHP (langage de script).
LEMP est une alternative populaire à LAMP, qui utilise Apache au lieu de Nginx et se concentre sur la fourniture de pages Web statiques. Il existe également WAMP et MAMP qui remplacent Linux par Windows et macOS.
Comment installer la pile LEMP
Maintenant que Linux est installé, nous allons vous guider à travers les installations de Nginx, MySQL et PHP.
Ce tutoriel nécessite que vous ayez un accès root et que vous utilisiez un client SSH tel que PuTTY (Windows) ou un terminal (Linux, macOS) pour vous connecter à votre VPS.
Étape 1 : Installation de Nginx sur CentOS 7
Étant donné que Nginx n'est pas disponible dans les dépôts par défaut de CentOS, nous devons d'abord installer le référentiel EPEL en exécutant cette commande :
yum install epel-release -y
Ensuite, nous allons installer Nginx lui-même :
yum install nginx -y
Une fois l'installation terminée, saisissez les lignes suivantes une par une pour activer Nginx :
systemctl start nginx
systemctl enable nginx
Vérifiez si Nginx fonctionne en visitant l'adresse IP publique de votre serveur. Votre page devrait ressembler à ceci :

Astuce : Utilisez la commande sudo si vous n'avez pas accès root.
Étape 2 : Installation de MySQL (MariaDB)
Nous allons installer MySQL en utilisant le service MariaDB, une version communautaire de MySQL.
MariaDB est inclus dans les référentiels par défaut de CentOS, nous pouvons donc simplement exécuter la commande yum pour l'installer :
yum install mariadb-server mariadb -y
Une fois l'installation terminée, activez et démarrez le service MariaDB :
systemctl start mariadb
systemctl enable mariadb
Sécurisez l'installation en exécutant la commande suivante :
mysql_secure_installation
MariaDB vous demandera le mot de passe root, que vous n'avez pas car vous venez d'installer MySQL. Pour cette raison, appuyez simplement sur Entrée.
Le message suivant vous demandera si vous souhaitez définir un mot de passe root. Entrez Y et suivez les instructions :
Entrez le mot de passe root actuel (appuyez sur Entrée pour aucun) :
OK, mot de passe utilisé avec succès, continuons…
La définition du mot de passe root garantit que personne ne peut se connecter en tant qu'utilisateur root MariaDB
sans l'autorisation appropriée.
Nouveau mot de passe :
Répétez le nouveau mot de passe :
Le mot de passe a été mis à jour avec succès !
Rechargement des tables de privilèges...
... Succès !
Le script posera quelques questions de sécurité. Nous vous recommandons d'appuyer sur Y pour toutes ces questions.
Supprimer les utilisateurs anonymes ? [O/n]
Interdire la connexion à distance en tant qu'utilisateur root ? [O/n]
Supprimer la base de données de test et y accéder ? [O/n]
Recharger les tables de privilèges maintenant ? [O/n]
Une fois que vous avez terminé la configuration, passez à l'installation de PHP.
Étape 3 : Installation de PHP v7.3
Nous devons télécharger et installer un référentiel CentOS supplémentaire qui contient les packages requis pour PHP v7.3. Exécutez ces commandes l'une après l'autre :
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
Activez le référentiel php73, qui est désactivé par défaut :
yum install yum-utils -y
yum-config-manager --enable remi-php73
Ensuite, installez le package PHP :
yum --enablerepo=remi,remi-php73 install php-fpm php-common
Lorsqu'on vous demande la permission d'installer, appuyez simplement sur Y.
Ensuite, installez les modules PHP courants pour vous assurer que le service fonctionne correctement :
yum --enablerepo=remi,remi-php73 install php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml
Étape 4 : Configuration de Nginx pour fonctionner avec PHP 7
La dernière chose à faire est de configurer Nginx pour fonctionner avec PHP 7. Voici comment faire :
Créez un nouveau fichier de configuration Nginx en exécutant l'éditeur de texte nano :
nano /etc/nginx/conf.d/default.conf
Ensuite, insérez ce code :
server {
    listen  80;
    server_name  votre_adresse_ip_du_serveur;
    # notez que ces lignes proviennent à l'origine du bloc "location /"
    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;
    }
}
    
    IMPORTANT : Remplacez votre_adresse_ip_du_serveur par l'adresse IP réelle de votre serveur.
Enregistrez le fichier en appuyant sur CTRL + X (ou CMD + X pour les utilisateurs Mac). Ensuite, redémarrez Nginx pour que les changements prennent effet :
systemctl restart nginx
Ouvrez la configuration PHP-FPM :
nano /etc/php-fpm.d/www.conf
Recherchez et modifiez ces lignes :
user = apache à user = nginx
group = apache à group = nginx
listen.owner = nobody à listen.owner = nginx
listen.group = nobody à listen.group = nginx
Lorsque c'est fait, ajoutez la ligne suivante sous ;listen = 127.0.0.1:9000 :
listen = /var/run/php-fpm/php-fpm.sock
Enregistrez le fichier en appuyant sur CTRL + X. Enfin, démarrez PHP-FPM et activez-le au démarrage :
systemctl start php-fpm.service
systemctl enable php-fpm.service

