Nginx est un serveur HTTP gratuit, open-source et performant. Nginx est connu pour sa stabilité, son riche ensemble de fonctionnalités, sa configuration simple et sa faible consommation de ressources.
Ce tutoriel vous montre comment installer Nginx sur CentOS 7 / RHEL 7 avec le support PHP (via PHP-FPM) et le support MariaDB.
PHP-FPM est une implémentation alternative de PHP FastCGI, et il a quelques fonctionnalités supplémentaires utiles pour les sites de toute taille, en particulier les sites les plus occupés).
Installer Linux
Voici l'article sur l'installation étape par étape de CentOS 7 / RHEL 7.
Vous avez maintenant Linux, et la prochaine consiste à installer Apache, MySQL et PHP dessus. Installons-les un par un.
La première chose que vous devez faire est de vous connecter en tant qu'utilisateur root ou de passer à l'utilisateur root.
$ su
Installer Nginx
Installez Nginx repository rpm pour télécharger Nginx depuis le site officiel.
### CentOS 7 ### rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ### RHEL 7 ### rpm -Uvh http://nginx.org/packages/rhel/7/noarch/RPMS/nginx-release-rhel-7-0.el7.ngx.noarch.rpm
Installez Nginx à l'aide de la commande suivante.
yum -y install nginx
Démarrez le service Nginx après l'installation.
systemctl start nginx
Pare-feu
Exécutez les commandes suivantes dans le terminal pour autoriser les requêtes HTTP via le pare-feu.
firewall-cmd --permanent --add-service=http firewall-cmd --reload
SELinux
Si vous obtenez une erreur de SELinux sur les journaux Nginx, voici le tutoriel sur la définition de la politique SELinux pour Nginx.
Sinon, désactivez temporairement SELinux à l'aide de la commande suivante pour la session en cours.
setenforce 0
Nous vous recommandons de désactiver définitivement SELinux.
Tester Nginx
Ouvrez votre navigateur Web et visitez l'URL suivante.
http://votre-adresse-ipVous devriez voir la page suivante. Cette page confirme que le Ngnix est installé avec succès sur le serveur.
La racine de document nginx par défaut sur CentOS 7 est /usr/share/nginx/html/. Les fichiers de configuration se trouvent dans le répertoire /etc/nginx.
Démarrage automatique du service Nginx au démarrage du système.
systemctl enable nginx
Installer MariaDB
CentOS 7 / RHEL 7 propose MariaDB v5.5 à partir du référentiel du système d'exploitation de base, qui est un peu plus ancien et sera bientôt EOL. Vous pouvez envisager d'installer MariaDB v10.x ou MySQL 8.x pour votre pile LEMP.Tout d'abord, nous allons installer MariaDB en exécutant la commande suivante.
yum -y install mariadb mariadb-server
Démarrez le serveur MariaDB à l'aide de la commande suivante.
systemctl start mariadb
Activez MariaDB pour qu'il démarre automatiquement lors du démarrage du système.
systemctl enable mariadb
Une fois l'installation terminée, vous devez sécuriser MariaDB à l'aide de la commande mysql_secure_installation. Vous pouvez installer phpMyAdmin pour gérer les bases de données via un navigateur Web.
Installer PHP
PHP v5.4 (Fin du support)
La version PHP (v5.4) disponible dans le référentiel de base CentOS est déjà en fin de support.
PHP v7.3
Remi, un référentiel tiers qui propose une version à jour de PHP (v7.3). Pour activer le référentiel Remi, installez le package de configuration automatique du référentiel Remi.
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
Installez PHP via PHP-FPM (PHP-FPM (FastCGI Process Manager) à l'aide de la commande YUM.
yum install -y --enablerepo=remi-php73 php php-fpm php-mysqlnd php-cli
Editez le fichier /etc/php-fpm.d/www.conf,
vi /etc/php-fpm.d/www.conf
Vérifiez que PHP-FPM écoute sur le port 9000.
listen = 127.0.0.1:9000
Assurez-vous que les valeurs suivantes ne sont pas commentées.
[.More.] pm.min_spare_servers = 5 [.More.] pm.max_spare_servers = 35 [.More.]
Tester la pile LEMP
Créer un hôte virtuel
Créons un hôte virtuel basé sur le nom sur le serveur Nginx pour les détails suivants.
Nom du serveur :serveur.itzgeek.local
Racine du document :/usr/share/nginx/html/itzgeek.local
Créez le fichier de configuration appelé virtual.conf et modifiez /etc/nginx/conf.d/virtual.conf.
vi /etc/nginx/conf.d/virtual.conf
Ajoutez le contenu suivant.
server { server_name server.itzgeek.local; root /usr/share/nginx/html/itzgeek.local; location / { index index.html index.htm index.php; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/itzgeek.local$fastcgi_script_name; } }
Créez une entrée d'hôte pour votre domaine (server.itzgeek.local) dans le fichier /etc/hosts.
vi /etc/hosts
Ajoutez une entrée d'hôte comme ci-dessous.
127.0.0.1 localhost.localdomain localhost server.itzgeek.local
Créez le répertoire racine du document.
mkdir /usr/share/nginx/html/itzgeek.local
Tester l'hôte virtuel
Pour tester le PHP, placez un fichier PHP à la racine du document de l'hôte virtuel créé, dans le terminal copiez/collez la ligne suivante :
echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/itzgeek.local/index.php
Redémarrez les services et activez le démarrage automatique.
systemctl restart nginx systemctl restart php-fpm systemctl enable php-fpm
Maintenant, ouvrez votre navigateur Web et saisissez votre domaine dans la barre d'adresse :
http://server.itzgeek.localLa page ressemblera à ci-dessous :
D'après la capture d'écran ci-dessus, PHP fonctionne, et il fonctionne via FPM/FastCGI, comme indiqué dans la ligne API du serveur.
Si vous faites défiler plus bas, vous verrez les informations de support MariaDB.
Conclusion
C'est tout. Vous avez configuré avec succès la pile LEMP sur CentOS 7 / RHEL 7. De plus, vous pouvez installer phpMyAdmin sur CentOS 7 pour gérer les bases de données MariaDB / MySQL via un navigateur Web.