Dans cet article, nous expliquerons comment installer une pile LEMP (Linux, Nginx, MariaDB, PHP) ainsi que PHP-FPM sur les serveurs RHEL/CentOS 7/6 et Fedora 26-29 en utilisant le gestionnaire de paquets yum et dnf.
Pendant le processus, nous installerons et activerons les dépôts Epel, Remi, Nginx et MariaDB afin de pouvoir installer les dernières versions de ces packages.
Lire aussi: Installer Apache, MySQL 8 ou MariaDB 10 et PHP 7 sur CentOS 7
Étape 1: Installation des dépôts EPEL et Remi
EPEL (Extra Packages for Enterprise Linux) est un dépôt basé sur la communauté qui propose des packages logiciels supplémentaires pour les distributions Linux basées sur RHEL.
Remi est un dépôt où vous pouvez trouver les dernières versions de la pile PHP (complète) pour l’installation dans les distributions Fedora et Enterprise Linux.
Sur RHEL/CentOS 7
# yum update && yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm ------ For RHEL 7 Only ------ # subscription-manager repos --enable=rhel-7-server-optional-rpms
Sur RHEL/CentOS 6
# yum update && yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm ------ For RHEL 6 Only ------ # subscription-manager repos --enable=rhel-6-server-optional-rpms
Sur Fedora 24-29
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm [On Fedora 29] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm [On Fedora 28] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm [On Fedora 27] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm [On Fedora 26] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm [On Fedora 25] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm [On Fedora 24]
Étape 2 : Installation des référentiels Nginx et MariaDB
Le référentiel Nginx est uniquement nécessaire dans les distributions RHEL et CentOS. Créez un fichier appelé /etc/yum.repos.d/nginx.repo et ajoutez-y les lignes suivantes.
Pour RHEL 7/6 :
[nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
Pour CentOS 7/6 :
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
Pour activer le référentiel MariaDB, créez un fichier nommé /etc/yum.repos.d/mariadb.repo avec le contenu suivant :
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Étape 4 : Installation de Ngnix et MariaDB
Nginx (Moteur X) est un serveur Web open source, robuste, léger et performant, serveur proxy inverse et également serveur proxy de messagerie pour les protocoles HTTP, SMTP, POP3 et IMAP. Pour plus de détails, visitez http://wiki.nginx.org/Overview.
MariaDB est un fork du célèbre MySQL, l’un des systèmes de gestion de base de données relationnelles (SGBDR) les plus populaires au monde. Il est entièrement développé par la communauté et en tant que tel, il est destiné à rester libre et compatible avec la GPL.
Pour installer Ngnix et MariaDB, exécutez les commandes suivantes.
----------- Installing on RHEL/CentOS 7/6 ----------- # yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm ----------- Installing on Fedora ----------- # dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
Étape 3 : Installation de PHP à l’aide du référentiel Remi
PHP (Hypertext Preprocessor) est un langage de script côté serveur gratuit et open source qui convient le mieux au développement web. Il peut être utilisé pour produire des pages web dynamiques pour un site web et est le plus fréquemment trouvé sur les serveurs *nix. L’un des avantages de PHP est qu’il est facilement extensible grâce à l’utilisation d’une grande variété de modules.
Pour installer PHP, vous devez d’abord activer le référentiel Remi en installant yum-utils
, une collection de programmes utiles pour gérer les référentiels yum et les paquets.
# yum install yum-utils
Une fois installé, vous pouvez utiliser yum-config-manager fourni par yum-utils
pour activer le référentiel Remi en tant que référentiel par défaut pour l’installation de différentes versions de PHP comme indiqué.
Par exemple, pour installer la version PHP 7.x, utilisez la commande suivante.
------------- On CentOS & RHEL ------------- # yum-config-manager --enable remi-php70 && yum install php [Install PHP 7.0] # yum-config-manager --enable remi-php71 && yum install php [Install PHP 7.1] # yum-config-manager --enable remi-php72 && yum install php [Install PHP 7.2] # yum-config-manager --enable remi-php73 && yum install php [Install PHP 7.3] ------------- On Fedora ------------- # dnf --enablerepo=remi install php70 [Install PHP 7.0] # dnf --enablerepo=remi install php71 [Install PHP 7.1] # dnf --enablerepo=remi install php72 [Install PHP 7.2] # dnf --enablerepo=remi install php73 [Install PHP 7.3]
Ensuite, nous allons installer tous ces modules PHP suivants.
------ On RHEL/CentOS 7/6 ------ # yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear ------ On Fedora ------ # dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
Étape 6 : Arrêt et désactivation du service Apache
Par défaut, Apache et Nginx écoutent sur le même port (TCP 80). Pour cette raison, si Apache est installé sur votre serveur, vous devez l’arrêter et le désactiver/masquer (une version plus forte de désactivation qui lie le service à /dev/null) afin d’utiliser Nginx, ou vous pouvez le supprimer si vous ne prévoyez plus de l’utiliser.
# systemctl stop httpd # systemctl disable httpd or # systemctl mask httpd
Étape 7 : Démarrage/Arrêt de Nginx, MariaDB et PHP-FPM
----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- # systemctl enable nginx # systemctl enable mariadb # systemctl enable php-fpm ----------- Start Nginx, MariaDB and PHP-FPM ----------- # systemctl start nginx # systemctl start mariadb # systemctl start php-fpm
Étape 8 : Configuration de Nginx et PHP-FPM
Créons maintenant une structure de répertoire pour votre site web (un hôte virtuel, ou bloc serveur comme on l’appelle dans Nginx) sous /srv/www/. Dans cet exemple, nous utiliserons www.tecmint.com
, mais n’hésitez pas à choisir un autre domaine et un répertoire principal si vous le souhaitez.
# mkdir -p /srv/www/tecmint/public_html # mkdir /srv/www/tecmint/logs # chown -R nginx:nginx /srv/www/tecmint
Étape 9 : Configuration des répertoires des hôtes virtuels Nginx
Comme vous le savez, la possibilité d’exécuter plusieurs sites à partir de la même machine est l’une des caractéristiques distinguées des principaux serveurs web. Procédons maintenant à la création des répertoires pour stocker nos blocs serveurs (appelés hôtes virtuels dans Apache) sous /etc/nginx.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
La ligne de code suivante, qui doit être insérée avant la fermeture du bloc http dans /etc/nginx/nginx.conf, garantira que les fichiers de configuration à l’intérieur du répertoire /etc/nginx/sites-enabled seront pris en compte lorsque Nginx est en cours d’exécution :
## Load virtual host conf files. ## include /etc/nginx/sites-enabled/*;

Pour créer le bloc serveur pour tecmint.com
, ajoutez les lignes de code suivantes à /etc/nginx/sites-available/tecmint (ce fichier sera créé lorsque vous saisirez le chemin complet pour démarrer votre éditeur de texte préféré). Il s’agit d’un fichier de configuration d’hôte virtuel de base.
server { listen 80 default; server_name tecmint; access_log /srv/www/tecmint/logs/access.log; error_log /srv/www/tecmint/logs/error.log; root /srv/www/tecmint/public_html; location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
Le processus « d’activation » d’un hôte virtuel consiste à créer un lien symbolique à partir de la définition de l’hôte virtuel tecmint
vers /etc/nginx/sites-enabled.
# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint
Pour appliquer réellement les modifications que nous avons apportées, nous devons maintenant redémarrer Nginx. Il est parfois utile de vérifier les fichiers de configuration pour les erreurs de syntaxe avant de le faire :
# nginx -t # systemctl restart nginx # systemctl status nginx

Pour accéder à votre hôte virtuel nouvellement créé, vous devez ajouter la ligne suivante à /etc/hosts en tant que méthode de résolution de nom de domaine de base.
192.168.0.18 www.tecmint.com tecmint.com
Étape 10 : Test de Nginx, MySQL, PHP et PHP-FPM
Restons-en à la méthode classique de test de PHP. Créez un fichier appelé test.php
sous /srv/www/tecmint/public_html/ et ajoutez-y les lignes de code suivantes.
La fonction phpinfo()
affiche une grande quantité d’informations sur l’installation actuelle de PHP :
<?php phpinfo(); ?>
Maintenant, pointez votre navigateur web vers http://tecmint/test.php
et vérifiez la présence des modules installés et des logiciels supplémentaires :
Félicitations ! Vous disposez désormais d’une installation fonctionnelle d’une pile LEMP. Si quelque chose ne s’est pas déroulé comme prévu, n’hésitez pas à nous contacter en utilisant le formulaire ci-dessous. Les questions et suggestions sont également les bienvenues.
Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/