Recherche de site Web

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


Dans cet article nous allons vous expliquer comment installer une pile LEMP (Linux, Nginx, MariaDB, PHP) ainsi que PHP-FPM sur les serveurs RHEL/CentOS 7/6 et Fedora 26-29 utilisant les packages yum et dnf directeur.

Au cours du processus, nous installerons et activerons les référentiels Epel, Remi, Nginx et MariaDB afin de pouvoir installez les dernières versions de ces packages.

Lire aussi : Installez Apache, MySQL 8 ou MariaDB 10 et PHP 7 sur CentOS 7

Étape 1 : Installation du référentiel EPEL et Remi

EPEL (Extra Packages for Enterprise Linux) est un référentiel communautaire proposant des packages logiciels complémentaires pour les distributions Linux basées sur RHEL.

Remi est un référentiel dans lequel 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 n'est nécessaire que dans les distributions RHEL et CentOS. Créez un fichier appelé /etc/yum.repos.d/nginx.repo et ajoutez-y les lignes suivantes.

Pour RHEL7/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 (Engine X) est un serveur Web open source, robuste, léger et hautes performances, un serveur proxy inverse et également un 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 bases de données relationnelles (SGBDR) les plus populaires au monde. Il est entièrement développé par la communauté et à ce titre il a vocation à rester FOSS 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 se trouve le plus souvent 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 et les packages yum.

yum install yum-utils

Une fois installé, vous pouvez utiliser yum-config-manager fourni par yum-utils pour activer le référentiel Remi comme référentiel par défaut pour installer 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êter et désactiver le 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ésactivé qui relie 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épertoires pour votre site Web (un hôte virtuel, ou un bloc serveur comme on l'appelle dans Nginx) sous /srv/www/. Dans cet exemple, nous utiliserons linux-console.net, mais n'hésitez pas à choisir un autre domaine et un autre 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 d'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 distinctives des principaux serveurs Web. Passons maintenant à la création des répertoires pour stocker nos blocs de serveur (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 de fermer le bloc http dans /etc/nginx/nginx.conf, garantira que les fichiers de configuration à l'intérieur du /etc/nginx/sites-enabled sera pris en compte lors de l'exécution de Nginx :

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 

Pour créer le bloc serveur pour linux-console.net, ajoutez les lignes de code suivantes à /etc/nginx/sites-available/tecmint (ce fichier sera créé lorsque vous entrez 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 depuis 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 

Afin d'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 comme méthode de base de résolution de nom de domaine.

192.168.0.18	linux-console.net linux-console.net 

Étape 10 : tester Nginx, MySQL, PHP et PHP-FPM

Restons fidèles à la manière classique de tester 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 de nombreuses informations sur l'installation actuelle de PHP :

<?php 
	phpinfo(); 
?> 

Pointez maintenant votre navigateur Web sur http://tecmint/test.php et vérifiez la présence des modules installés et des logiciels supplémentaires :

Toutes nos félicitations! Vous disposez maintenant d’une installation fonctionnelle d’une pile LEMP. Si quelque chose ne s'est pas passé comme prévu, n'hésitez pas à nous contacter en utilisant le formulaire ci-dessous. Les questions et suggestions sont également les bienvenues.