Comment installer Nginx 1.15, MariaDB 10 et PHP 7 sur CentOS 7

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/*; 
Configuring Nginx VirtualHost

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 
Restart Nginx and Verify Status

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/