Introduction
Le logiciel LEMP est un groupe de logiciels libres qui sont habituellement installés en même temps pour permettre aux sites Web et aux applications Web dynamiques d’un serveur hôte. Ce terme est en fait un acronyme qui représente le système d’exploitation Linux, avec le serveur web ENginx. Les données du site sont stockées dans une base de données MySQL (ou MariaDB) et le contenu dynamique est traité par PHP.
Nous allons commencer ce guide LEMP avec PHP 7.4 installé sur un serveur CentOS 7, en utilisant MySQL comme système de gestion de base de données.
Requirement
Vous devez avoir un compte d’utilisateur non root différent sur votre serveur avant de procéder à cette instruction.
Étape 1 – Installation de Nginx
Nous utiliserons Nginx, un serveur web haute performance, pour servir les pages web aux visiteurs du site. Pour obtenir la version la plus récente de Nginx, nous allons d’abord installer le dépôt EPEL, qui offre un logiciel supplémentaire pour le système d’exploitation CentOS 7.
Exécuter la commande suivante pour ajouter le dépôt EPEL CentOS 7 :
$ sudo yum install epel-release
Parce que nous utilisons la commande sudo, ces commandes sont exécutées avec les privilèges root. Il vous demandera votre mot de passe d’utilisateur normal afin de confirmer que vous avez l’autorisation d’exécuter des commandes avec des capacités racine. Lorsque vous êtes invité à confirmer l’installation, appuyez sur Y
pour continuer.
Maintenant que le dépôt EPEL a été installé sur votre serveur, utilisez la commande yum suivante pour installer Nginx :
$ sudo yum install nginx
Démarrer Nginx une fois l’installation terminée :
$ sudo systemctl start nginx
Vous pouvez immédiatement tester que tout fonctionne correctement en accédant à l’adresse IP publique de votre serveur dans votre navigateur web.
Naviguer dans un navigateur Web : http://server_public_IP/
La page Web par défaut de CentOS 7 Nginx sera affichée de démonstration et de test.
Ça devrait ressembler à cette page :
Si vous accédez à cette page, votre serveur web a été déployé avec succès.
Exécutez la commande suivante pour activer Nginx au démarrage :
$ sudo systemctl enable nginx
Étape 2 – Installation de MySQL
Pour obtenir un guide complet, suivez les étapes dans Installation de MySQL sur CentOS/RHEL 7/6 & Fedora 31/30.
Étape 3 – Installer PHP
PHP est la partie de notre système qui va traiter le code afin de montrer le contenu dynamique. Il peut exécuter des scripts, se connecter à nos bases de données MySQL pour l’information, puis fournir les données traitées à notre serveur web pour l’affichage.
Parce que la version PHP fournie par défaut sur les serveurs CentOS 7 est obsolète, nous devrons installer un dépôt de paquets tiers pour télécharger et installer PHP 7+ sur votre serveur CentOS 7. Remi est un dépôt de paquets important qui offre les versions PHP les plus récentes pour les machines CentOS.
Exécuter la commande suivante pour installer le dépôt Remi pour CentOS 7 :
$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Une fois l’installation terminée, vous devez exécuter une commande pour activer le dépôt contenant votre version préférée de PHP. Pour vérifier que les versions PHP 7+ sont disponibles dans le dépôt Remi, exécutez :
$ yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64
Vous verrez le résultat suivant :
Output :
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: mirrors.ukfast.co.uk Available Packages php70.x86_64 2.0-1.el7.remi remi-safe php71.x86_64 2.0-1.el7.remi remi-safe php72.x86_64 2.0-1.el7.remi remi-safe php73.x86_64 2.0-1.el7.remi remi-safe php74.x86_64 1.0-3.el7.remi remi-safe php80.x86_64 1.0-3.el7.remi remi-safe
Dans ce tutoriel, nous installerons PHP 7.4. Pour obtenir PHP 7.4, utilisez la commande suivante pour activer le bon paquet Remi :
$ sudo yum-config-manager --enable remi-php74
Maintenant, nous pouvons utiliser yum pour installer PHP comme d’habitude. La commande suivante installera tous les paquets nécessaires pour que PHP 7.4 fonctionne dans Nginx et soit connectée aux bases de données MySQL :
$ sudo yum install php php-mysqlnd php-fpm
Pour vous assurer que PHP est installé comme votre version préférée, exécutez :
$ php --version
Output :
PHP 7.4.8 (cli) (built: Jul 9 2020 16:09:41) (NTS) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies
PHP a maintenant été installé avec succès sur votre machine. Ensuite, nous devons apporter quelques modifications à la configuration par défaut. Pour faciliter l’édition de fichiers sur CentOS, nous allons d’abord installer nano, un éditeur de texte plus convivial que vi :
$ sudo yum install nano
Modifier le /etc/php-fpm.d/www.conf
fichier de configuration dans nano ou votre éditeur de texte préféré :
$ sudo nano /etc/php-fpm.d/www.conf
Examinez maintenant les directives utilisateur et de groupe. Si vous utilisez nano, vous pouvez rechercher ces phrases dans le fichier courant en utilisant CTRL + W
.
Output :
… user = apache group = apache …
Nous devons les changer pour nginx
:
Output :
… user = nginx group = nginx …
Locate the listen
directive next. php-fpm
will listen on a given host and port via TCP
by default. We wish to update this option so that it listens on a local socket file, as this increases the server’s overall speed.
Trouver les directives listen.owner
, listen.group
, and listen.mode
. Par défaut, ces lignes sont commentées. Supprimer le précédent ;
symbole au début de la ligne pour décommenter. Après cela, mettre le propriétaire et le groupe à nginx
.
Changer la ligne qui contient la directive d’écoute pour :
listen = /var/run/php-fpm/php-fpm.sock; listen.owner = nginx listen.group = nginx listen.mode = 0660
Lorsque vous avez terminé l’édition, enregistrez et quittez le fichier.
Exécutez la commande suivante pour activer et lancer le service php-fpm
:
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
Étape 4 – Configurer Nginx pour servir les pages PHP
Nous avons actuellement tous les composants nécessaires en place. La seule chose qui reste à faire est de demander à Nginx d’utiliser notre processeur PHP pour le contenu dynamique.
Nginx fournit un répertoire dédié où nous pouvons configurer chaque site hébergé comme un fichier de configuration distinct en utilisant un bloc serveur. Ceci est comparable aux hôtes virtuels d’Apache.
Pour continuer, créez un nouveau fichier dans le /etc/nginx/conf.d
répertoire :
$ sudo nano /etc/nginx/conf.d/default.conf
Copiez le bloc de définition du serveur PHP ci-dessous dans votre fichier de configuration, et n’oubliez pas de modifier la directive server_name avec le nom de domaine ou l’adresse IP de votre serveur :
server {
listen 80;
server_name server_public_IP;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Lorsque vous avez terminé l’édition, enregistrez et quittez le fichier.
Enfin, redémarrez Nginx pour appliquer les modifications :
$ sudo systemctl restart nginx
Étape 5 – Exécutez PHP sur Nginx.
Nous allons maintenant créer une page de test PHP pour nous assurer que le serveur web fonctionne correctement. Dans le /usr/share/nginx/html
répertoire, créer un nouveau fichier PHP nommé info.php
:
$ nano /usr/share/nginx/html/info.php
<?php
phpinfo();
Lorsque vous avez terminé, enregistrez et quittez le fichier.
Maintenant, accédons au fichier info dans :
http://server_public_IP/info.php