Comment installer Nginx avec PHP et MySQL (pile LEMP) sur Ubuntu 20.04 LTS

Nginx (prononcé « engine x ») est un serveur HTTP gratuit, open-source et très performant. Nginx est connu pour sa grande vitesse, sa stabilité, son riche ensemble de fonctionnalités, sa configuration simple et sa faible consommation de ressources. Ce tutoriel montre comment installer Nginx sur un serveur Ubuntu 20.04 LTS prenant en charge PHP 7.4 (via PHP-FPM) et MySQL (LEMP = Linux + Nginx (prononcé « engine x ») + MySQL + PHP).

Conditions préalables

  • Serveur Ubuntu 20.04 LTS
  • Privilèges de racine

Ce que nous allons faire ?

  • Installer Nginx
  • Installer MySQL
  • Installer PHP-FPM
  • Configurer Nginx et PHP-FPM
  • Installer PhpMyAdmin
  • Configurer PhpMyAdmin
  • Test de

Étape 1 – Installer Nginx

Nginx ou moteur x est un serveur HTTP et proxy très performant qui consomme peu de mémoire. La plupart des sites Web à grande échelle comme Netflix, Pinterest, CloudFlare, GitHub utilisent Nginx.

Dans cette étape, nous allons installer le serveur Web Nginx à partir du référentiel Ubuntu.

Mets à jour tous les référentiels sur le système Ubuntu et installe les paquets Nginx à l’aide de la commande apt ci-dessous.

sudo apt update
sudo apt install nginx

Une fois l’installation terminée, démarre le service Nginx et active-le pour qu’il se lance à chaque fois au démarrage du système.

systemctl start nginx
systemctl enable nginx

Maintenant que l’installation du serveur Web Nginx est terminée, vérifie le service Nginx à l’aide de la commande suivante.

systemctl status nginx

Voici le résultat que tu obtiendras.

Installe Nginx

Vérifie aussi le port HTTP sur le système Ubuntu et assure-toi qu’il est utilisé par le service Nginx.

ss -plt4

Tu obtiendras le résultat ci-dessous.

Port de contrôle

Il en résulte que le protocole HTTP est utilisé par le service Nginx.

Ensuite, nous allons sécuriser notre installation Nginx à l’aide du pare-feu UFW.

Ajoute les protocoles HTTP et HTTPS à la configuration du pare-feu UFW à l’aide de la commande suivante.

for fw in ssh http https
do
ufw allow $fw
done

Active maintenant le pare-feu UFW et vérifie son état.

ufw enable
ufw status numbered

Et le protocole HTTP et HTTPS a été ajouté à la configuration du pare-feu UFW.

Pare-feu ouvert HTTP et HTTPS port UFW

Étape 2 – Installe MySQL

MySQL est le système de gestion de base de données relationnelle (SGBDR) open source le plus populaire créé par Oracle Corporation. C’est un composant central de la pile LEMP, et nous allons installer la dernière version de MySQL depuis le dépôt Ubuntu.

Installe MySQL à l’aide de la commande apt ci-dessous.

sudo apt install mysql-server mysql-client

Une fois l’installation de MySQL terminée, démarre le service MySQL et active-le pour qu’il se lance chaque fois au démarrage du système.

systemctl start mysql
systemctl enable mysql

Vérifie maintenant le service MySQL à l’aide de la commande ci-dessous.

systemctl status mysql

Le service MySQL est en place et fonctionne.

Installer le serveur MySQL

Ensuite, nous allons configurer le mot de passe root pour le serveur MySQL.

Exécute la commande ‘mysql_secure_installation’ ci-dessous.

mysql_secure_installation

La configuration suivante te sera demandée, et assure-toi de taper ton mot de passe fort pour l’utilisateur racine de MySQL.

Press y|Y for Yes, any other key for No: Press Enter

New password:
Re-enter new password:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

Et le mot de passe de la racine MySQL a été configuré.

Par conséquent, l’installation et la configuration de la base de données MySQL sur Ubuntu 20.04 sont terminées.

Étape 3 – Installe et configure PHP-FPM

PHP-FPM ou FastCGI Process Manager est une alternative à l’ancien PHP FastCGI qui offre des fonctionnalités supplémentaires et des améliorations de la vitesse. Il convient bien aux sites de petite à grande taille basés sur le langage de programmation PHP.

Dans cette étape, nous allons installer le PHP7.4-FPM par défaut avec quelques extensions supplémentaires requises par PHPMyAdmin.

Installe PHP-FPM à l’aide de la commande ci-dessous.

sudo apt install php-fpm php-cli php-curl php-mysql php-curl php-gd php-mbstring php-pear -y

Une fois l’installation de PHP-FPM terminée, va dans le répertoire ‘/etc/php/7.4/fpm’ et modifie la configuration de php.ini à l’aide de l’éditeur vim.

cd /etc/php/7.4/fpm/
vim php.ini

Décommente la configuration suivante et change la valeur en ‘0’.

cgi.fix_pathinfo = 0

Sauvegarde et ferme.

Maintenant, démarre le service PHP7.4-FPM et active-le pour qu’il se lance chaque fois au démarrage du système

systemctl start php7.4-fpm
systemctl enable php7.4-fpm

Le service PHP-FPM est en marche, vérifie-le à l’aide de la commande suivante.

systemctl status php7.4-fpm

Voici le résultat que tu obtiendras.

Installer php-fpm

Par défaut, le service PHP-FPM est exécuté sous le fichier sock, vérifie-le à l’aide de la commande ss ci-dessous.

ss -pl | grep php

Tu obtiendras le résultat ci-dessous.

u_str   LISTEN   0     511   /run/php/php7.4-fpm.sock 67702   * 0                            

Et l’installation de PHP-FPM 7.4 sur Ubuntu 20.04 est terminée.

Étape 4 – Configurer Nginx et PHP-FPM

Dans cette étape, nous allons configurer le serveur Web Nginx et PHP-FPM.

Va dans le répertoire de configuration ‘/etc/nginx’ et modifie le fichier ‘nginx.conf’ en utilisant vim ou nano.

cd /etc/nginx/
vim nginx.conf

Décommente la ligne suivante pour cacher la version de Nginx.

server_tokens off;

Sauvegarde et ferme.

Ensuite, modifie la configuration de l’hôte virtuel « par défaut » dans le répertoire « sites-available ».

vim sites-available/default

Décommente la ligne PHP indiquée ci-dessous et modifie la ligne du fichier sock.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        # # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        # # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.2.0.1:9000;
        }

Sauvegarde et ferme.

Teste la configuration de Nginx et assure-toi qu’il n’y a pas d’erreur, puis redémarre le service.

nginx -t
systemctl restart nginx

La configuration de Nginx et de PHP-FPM est terminée.

Configure Nginx et PHP-FPM

Étape 5 – Installer phpMyAdmin

PhpMyAdmin est une application basée sur PHP pour gérer les bases de données MySQL ou MariaDB depuis un navigateur Web. Dans cette étape, nous allons installer et configurer PHPMyAdmin sous la pile LEMP (Linux, Nginx, MySQL et PHP-FPM).

Installe PHPMyAdmin à l’aide de la commande apt ci-dessous.

sudo apt install phpmyadmin

Pendant l’installation, elle te demandera la configuration du serveur Web pour phpmyadmin.

Ne choisis aucune option et déplace le curseur sur‘OK‘.

Configurer le serveur Web pour phpMyAdmin

Pour la configuration de la base de données et des utilisateurs de phpmyadmin, choisis‘Oui‘.

Configurer la base de données et l'utilisateur de phpMyAdmin

Et tape un nouvel administrateur PHPMyAdmin ‘STRONG’ comme ‘[email protected]#’.

Configurer le mot de passe pour la base de données et l'utilisateur de phpMyAdmin

Répète le mot de passe ‘[email protected]#’.

Configurer le serveur Web pour phpMyAdmin

Et l’installation de phpMyAdmin sur Ubuntu 20.04 est terminée.

Étape 6 – Configurer phpMyAdmin avec Nginx et MySQL

Après l’installation de phpmyadmin, nous devons configurer phpmyadmin pour qu’il fonctionne sous le serveur Web Nginx et configurer l’accès de l’utilisateur MySQL phpmyadmin. Pour exécuter PHPMyAdmin sous le serveur Web Nginx, nous devons ajouter la configuration au fichier de configuration de l’hôte virtuel.

Configurer phpMyAdmin avec le serveur Web Nginx

Va maintenant dans le répertoire de configuration ‘/etc/nginx’, et modifie le fichier d’hôte virtuel par défaut.

cd /etc/nginx/sites-available/
vim default

Colle la configuration Nginx suivante pour PHPMyAdmin entre les crochets ‘server {…}’.

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;

location ~ ^/phpmyadmin/(doc|sql|setup)/ {
    deny all;
    }

location ~ /phpmyadmin/(.+\.php)$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    }
}

Sauvegarde et quitte.

Teste la configuration de Nginx et assure-toi qu’il n’y a pas d’erreur, puis redémarre le service Nginx.

nginx -t
systemctl reload nginx

Nous avons ajouté la configuration de Nginx pour notre installation de phpMyAdmin, elle est accessible par l’URL du chemin sous la forme ‘http://server-ip/phpmyadmin’.

Configurer Nginx pour phpMyAdmin

Autorise l’utilisateur de phpMyAdmin à accéder aux bases de données

Pour ce tutoriel, nous allons utiliser des utilisateurs MySQL non root pour PHPMyAdmin. Nous allons créer un nouvel utilisateur et lui accorder tous les privilèges de toutes les bases de données du serveur.

Connecte-toi au shell MySQL à l’aide de la commande suivante.

mysql -u root -p

Crée maintenant un nouvel utilisateur MySQL ‘hakase’ et accorde tous les privilèges de la base de données.

create user [email protected]'localhost' identified by '[email protected]#';
grant all privileges on *.* to [email protected]'localhost';
flush privileges;

Tape maintenant ‘exit’ pour te déconnecter du shell MySQL.

exit

Nous avons donc créé un nouvel utilisateur MySQL pour le phpMyAdmin.

Étape 7 – Test

Dans cette étape, nous allons tester notre configuration de la pile LEMP et de phpMyAdmin.

Test du fichier PHP

Va dans le répertoire ‘/var/www/html’ et crée un nouveau fichier script ‘info.php’ en utilisant l’éditeur vim.

cd /var/www/html
vim info.php

Colle le script suivant dans ce fichier.

<?php
phpinfo();
?>

Sauvegarde et ferme.

Ensuite, ouvre ton navigateur Web et tape l’adresse IP de ton serveur, suivie du chemin de ton script ‘info.php’.

http://server-ip/info.php

Voici le résultat que tu obtiendras.

phpinfo avec LEMP Stack

Nous avons donc configuré en détail notre PHP-FPM 7.4 sur le serveur Ubuntu 20.04, et le script PHP fonctionne sur notre serveur LEMP Stack.

Test de phpMyAdmin

Pour tester notre installation de phpMyAdmin, tape l’adresse IP de ton serveur suivie du chemin d’accès ‘phpmyadmin’ sur l’URL.

http://server-ip/phpmyadmin/

Et tu obtiendras la page de connexion de phpMyAdmin.

Page de connexion de phpMyAdmin

Pour te connecter à phpMyAdmin, tape l’utilisateur que nous avons créé en haut. L’utilisateur est ‘hakase’ et le mot de passe ‘[email protected]#’, puis clique sur le bouton‘Go‘.

Et tu obtiendras le tableau de bord de phpMyAdmin comme ci-dessous.

Tableau de bord de phpMyAdmin

Le phpMyAdmin fonctionne sous l’environnement LEMP Stack.

Par conséquent, l’installation et la configuration de la Pile LEMP sur Ubuntu 20.04 ont été effectuées avec succès.

Vous aimerez aussi...