Installation et configuration d'une pile LNMP sur CentOS 7 via Yum

Configuration initiale du système

Avant de procéder à l'installation des composants du serveur Web, il est nécessaire de s'assurer que l'interface réseau est active et que les flux de trafic sont autorisés.

1. Activation de l'interface réseau

Sur CentOS 7, modifiez le fichier de configuraton de votre interface réseau (généralement situé dans /etc/sysconfig/network-scripts/) :

vi /etc/sysconfig/network-scripts/ifcfg-ens33

Assurez-vous que le paramètre ONBOOT est défini sur yes :

ONBOOT=yes

Redémarrez le service réseau pour appliquer les changements :

systemctl restart network

2. Gestion du pare-feu

Pour un environnement de développement initial, vous pouvez arrêter et désactiver le pare-feu Firewalld :

systemctl stop firewalld
systemctl disable firewalld

Déploiement du serveur Web Nginx

Nginx n'est pas disponible dans les dépôts par défaut de CentOS. Il faut donc installer le dépôt EPEL (Extra Packages for Enterprise Linux).

yum -y install epel-release
yum -y install nginx

Activez le service pour qu'il se lance automatiquement au démarrage du système :

systemctl start nginx
systemctl enable nginx

Installation de PHP 7.4

Pour obtenir une version récente de PHP comme la 7.4, l'utilisation du dépôt Remi est recommandée.

yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install php74-php-fpm php74-php-mysqlnd php74-php-gd php74-php-mbstring php74-php-cli

Une fois l'installation terminée, démarrez le processus PHP-FPM :

systemctl start php74-php-fpm
systemctl enable php74-php-fpm

Interconnexion de Nginx et PHP

Il est nécessaire de modifier la configuration de Nginx pour qu'il puisse transmettre les requêtes PHP au service PHP-FPM.

Ouvrez le fichier de configuration principal :

vi /etc/nginx/nginx.conf

Modifiez le bloc server pour inclure la gestion des fichiers .php :

server {
    listen       80;
    server_name  localhost;
    root         /usr/share/nginx/html;
    index        index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Redémarrez Nginx pour valider la configuration :

systemctl restart nginx

Créez un fichier de test à la racine du serveur :

echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/check.php

Installasion et sécurisation de MySQL 5.6

Installez le dépôt communautaire MySQL puis le serveur :

yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld
systemctl enable mysqld

Initialisez le mot de passe de l'administrateur root :

mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('votre_mot_de_passe');"

Validation de la connexion PHP vers MySQL

Afin de vérifier que le module PHP communique correctement avec la base de données, créez un scriptt de test nommé db_test.php :

<?php
$hote = 'localhost';
$utilisateur = 'root';
$mdp = 'votre_mot_de_passe';

$bdd = mysqli_connect($hote, $utilisateur, $mdp);

if (!$bdd) {
    die('Erreur de connexion : ' . mysqli_connect_error());
}

echo 'Connexion réussie au serveur MySQL';
mysqli_close($bdd);
?>

Accédez à ce fichier via votre navigateur (http://[IP_DU_SERVEUR]/db_test.php) pour confirmer le bon fonctionnement de l'ensemble de la pile LNMP.

Étiquettes: CentOS nginx MySQL PHP LNMP

Publié le 24 juillet à 20h34