GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer la pile LEMP sur le serveur/bureau Ubuntu 20.04

Ce tutoriel va vous montrer comment installer la pile LEMP (Nginx, MariaDB et PHP7.4) sur Ubuntu 20.04. Une pile logicielle est un ensemble d'outils logiciels regroupés. LEMP signifie Linux, Nginx (Engine-X), MariaDB/MySQL et PHP, qui sont tous open source et gratuits. Il s'agit de la pile logicielle la plus courante qui alimente les sites Web dynamiques et les applications Web. Linux est le système d'exploitation; Nginx est le serveur Web ; MariaDB/MySQL est le serveur de base de données et PHP est le langage de script côté serveur chargé de générer des pages Web dynamiques.

Prérequis

Pour suivre ce tutoriel, vous avez besoin d'un système d'exploitation Ubuntu 20.04 exécuté sur votre ordinateur local ou sur un serveur distant.

Si vous recherchez un VPS (Virtual Private Server), vous pouvez créer un compte chez DigitalOcean via ce lien spécial pour obtenir un crédit gratuit de 50 $. (Pour les nouveaux utilisateurs uniquement). Si vous êtes déjà un utilisateur de DigitalOcean, vous pouvez créer un compte sur Vultr via ce lien spécial pour obtenir un crédit gratuit de 50 $ (pour les nouveaux utilisateurs uniquement).

Et si vous avez besoin de configurer la pile LEMP avec un nom de domaine, je vous recommande d'acheter des noms de domaine auprès de NameCheap car le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.

Étape 1 :Mettre à jour les packages logiciels

Avant d'installer la pile LEMP, il est recommandé de mettre à jour le référentiel et les packages logiciels en exécutant les commandes suivantes sur votre système d'exploitation Ubuntu 20.04.

sudo apt update

sudo apt upgrade

Étape 2 :Installer le serveur Web Nginx

Nginx est un serveur Web performant et très populaire de nos jours. Il peut également être utilisé comme proxy inverse et serveur de mise en cache. Entrez la commande suivante pour installer le serveur Web Nginx.

sudo apt install nginx

Une fois installé, nous pouvons permettre à Nginx de démarrer automatiquement au démarrage en exécutant la commande suivante.

sudo systemctl enable nginx

Ensuite, démarrez Nginx avec cette commande :

sudo systemctl start nginx

Vérifiez maintenant son statut.

sudo systemctl status nginx

Sortie :

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-04-10 14:11:43 UTC; 3s ago
       Docs: man:nginx(8)
    Process: 8533 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 8545 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 8549 (nginx)
      Tasks: 3 (limit: 9451)
     Memory: 3.9M
     CGroup: /system.slice/nginx.service
             ├─8549 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─8550 nginx: worker process
             └─8551 nginx: worker process

"Activé ” indique que le démarrage automatique au démarrage est activé et nous pouvons voir que Nginx est en cours d'exécution. Vous pouvez également voir la quantité de RAM utilisée par Nginx à partir de la sortie. Si la commande ci-dessus ne se ferme pas immédiatement après l'exécution. Vous devez appuyer sur "q ” pour le faire cesser.

Vérifiez la version de Nginx.

nginx -v

Sortie :

nginx version: nginx/1.17.9 (Ubuntu)

Tapez maintenant l'adresse IP publique de votre serveur Ubuntu 20.04 dans la barre d'adresse du navigateur. Vous devriez voir la page Web "Bienvenue dans Nginx", ce qui signifie que le serveur Web Nginx fonctionne correctement. Si vous installez LEMP sur votre ordinateur local Ubuntu 20.04, saisissez 127.0.0.1 ou localhost dans la barre d'adresse du navigateur.

Si la connexion est refusée ou échoue, il se peut qu'un pare-feu empêche les requêtes entrantes sur le port TCP 80. Si vous utilisez le pare-feu iptables, vous devez exécuter la commande suivante pour ouvrir le port TCP 80.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Si vous utilisez un pare-feu UFW, exécutez cette commande pour ouvrir le port TCP 80.

sudo ufw allow http

Enfin, nous devons créer www-data (utilisateur Nginx) en tant que propriétaire du répertoire Web. Par défaut, il appartient à l'utilisateur root.

sudo chown www-data:www-data /usr/share/nginx/html -R

Étape 3 :Installer le serveur de base de données MariaDB

MariaDB est un remplacement direct de MySQL. Il est développé par d'anciens membres de l'équipe MySQL qui craignent qu'Oracle ne transforme MySQL en un produit à source fermée. Entrez la commande suivante pour installer MariaDB sur Ubuntu 20.04.

sudo apt install mariadb-server mariadb-client

Une fois installé, le serveur MariaDB devrait être automatiquement démarré. Utilisez systemctl pour vérifier son état.

systemctl status mariadb

Sortie :

● mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 9161 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 9451)
     Memory: 64.7M
     CGroup: /system.slice/mariadb.service
             └─9161 /usr/sbin/mysqld

S'il ne fonctionne pas, démarrez-le avec cette commande :

sudo systemctl start mariadb

Pour permettre à MariaDB de démarrer automatiquement au démarrage, exécutez

sudo systemctl enable mariadb

Exécutez maintenant le script de sécurité post-installation.

sudo mysql_secure_installation

Lorsqu'il vous demande d'entrer le mot de passe root MariaDB, appuyez sur la touche Entrée car le mot de passe root n'est pas encore défini. Saisissez ensuite y pour définir le mot de passe root pour le serveur MariaDB.

Ensuite, vous pouvez appuyer sur Entrée pour répondre à toutes les questions restantes, ce qui supprimera l'utilisateur anonyme, désactivera la connexion root à distance et supprimera la base de données de test. Cette étape est une exigence de base pour la sécurité de la base de données MariaDB. (Notez que Y est en majuscule, ce qui signifie qu'il s'agit de la réponse par défaut. )

Par défaut, le package MaraiDB sur Ubuntu utilise unix_socket pour authentifier la connexion de l'utilisateur, ce qui signifie essentiellement que vous pouvez utiliser le nom d'utilisateur et le mot de passe du système d'exploitation pour vous connecter à la console MariaDB. Vous pouvez donc exécuter la commande suivante pour vous connecter sans fournir de mot de passe root MariaDB.

sudo mariadb -u root

Pour quitter, exécutez

exit;

Vérifiez les informations de version du serveur MariaDB.

mariadb --version

Comme vous pouvez le voir, nous avons installé MariaDB 10.3.22.

mariadb  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Étape 4 :Installez PHP7.4

PHP7.4 est inclus dans le référentiel Ubuntu 20.04 et présente une amélioration mineure des performances par rapport à PHP7.3. Entrez la commande suivante pour installer PHP7.4 et certaines extensions courantes.

sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl

Les extensions PHP sont couramment nécessaires pour les systèmes de gestion de contenu (CMS) comme WordPress. Par exemple, si votre installation manque de php7.4-xml , certaines pages de votre site WordPress peuvent être vides et vous pouvez trouver une erreur dans le journal des erreurs Nginx comme :

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

L'installation de ces extensions PHP garantit le bon fonctionnement de votre CMS. Lancez maintenant php7.4-fpm.

sudo systemctl start php7.4-fpm

Activer le démarrage automatique au démarrage.

sudo systemctl enable php7.4-fpm

Vérifier l'état :

systemctl status php7.4-fpm

Exemple de sortie :

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor pr>
     Active: active (running) since Fri 2020-04-10 14:40:26 UTC; 12s ago
       Docs: man:php-fpm7.4(8)
    Process: 21019 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /ru>
   Main PID: 21012 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req>
      Tasks: 3 (limit: 9451)
     Memory: 9.4M
     CGroup: /system.slice/php7.4-fpm.service
             ├─21012 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─21017 php-fpm: pool www
             └─21018 php-fpm: pool www

Si la commande ci-dessus ne se ferme pas immédiatement après l'exécution. Vous devez appuyer sur "q ” pour le faire cesser.

Étape 5 :Créer un bloc de serveur Nginx

Un bloc de serveur Nginx est comme un hôte virtuel dans Apache. Nous n'utiliserons pas le bloc de serveur par défaut car il est inadéquat pour exécuter du code PHP et si nous le modifions, cela devient un gâchis. Supprimez donc le default lien symbolique dans sites-enabled répertoire en exécutant la commande suivante. (Il est toujours disponible en tant que /etc/nginx/sites-available/default .)

sudo rm /etc/nginx/sites-enabled/default

Utilisez ensuite un éditeur de texte en ligne de commande comme Nano pour créer un tout nouveau fichier de bloc de serveur sous /etc/nginx/conf.d/ répertoire.

sudo nano /etc/nginx/conf.d/default.conf

Collez le texte suivant dans le fichier. L'extrait de code suivant permettra à Nginx d'écouter sur le port IPv4 80 et le port IPv6 80 avec un nom de serveur fourre-tout.

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.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;
  }

 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O , puis appuyez sur Enter confirmer. Pour quitter, appuyez sur Ctrl+X .)

Testez ensuite les configurations Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx.

sudo systemctl reload nginx

Étape 6 :Testez PHP

Pour tester PHP-FPM avec le serveur Web Nginx, nous devons créer un info.php fichier dans le répertoire webroot.

sudo nano /usr/share/nginx/html/info.php

Collez le code PHP suivant dans le fichier.

<?php phpinfo(); ?>

Enregistrez et fermez le fichier. Maintenant, dans la barre d'adresse du navigateur, saisissez server-ip-address/info.php . Remplacez sever-ip-address avec votre adresse IP actuelle. Si vous suivez ce tutoriel sur votre ordinateur local, saisissez 127.0.0.1/info.php ou localhost/info.php .

Vous devriez voir les informations PHP de votre serveur. Cela signifie que les scripts PHP peuvent s'exécuter correctement avec le serveur Web Nginx.

Bravo! Vous avez installé avec succès Nginx, MariaDB et PHP7.4 sur Ubuntu 20.04. Pour la sécurité de votre serveur, vous devez supprimer info.php fichier maintenant pour empêcher le pirate de le voir.

sudo rm /usr/share/nginx/html/info.php

Astuce de dépannage

Si vous rencontrez des erreurs, vous pouvez consulter le journal des erreurs Nginx (/var/log/nginx/error.log ) pour savoir ce qui ne va pas.

Redémarrage automatique de Nginx

Si pour une raison quelconque votre processus Nginx est tué, vous devez exécuter la commande suivante pour le redémarrer.

sudo systemctl restart nginx

Au lieu de taper manuellement cette commande, nous pouvons faire en sorte que Nginx redémarre automatiquement en modifiant le nginx.service unité de service systemd. Pour remplacer la configuration par défaut du service systemd, nous créons un répertoire séparé.

sudo mkdir -p /etc/systemd/system/nginx.service.d/

Créez ensuite un fichier sous ce répertoire.

sudo nano /etc/systemd/system/nginx.service.d/restart.conf

Ajoutez les lignes suivantes dans le fichier, ce qui fera redémarrer automatiquement Nginx 5 secondes après détection d'une panne. La valeur par défaut de RetartSec est 100 ms , ce qui est trop petit. Nginx peut se plaindre que "la demande de démarrage se répète trop rapidement" si RetartSec n'est pas assez grand.

[Service]
Restart=always
RestartSec=5s

Enregistrez et fermez le fichier. Rechargez ensuite systemd pour que les modifications prennent effet.

sudo systemctl daemon-reload

Pour vérifier si cela fonctionnerait, tuez Nginx avec :

sudo pkill nginx

Vérifiez ensuite l'état de Nginx. Vous constaterez que Nginx a redémarré automatiquement.

systemctl status nginx

Étape suivante

J'espère que ce tutoriel vous a aidé à installer la pile LEMP sur Ubuntu 20.04 LTS . Vous pouvez installer phpMyAdmin, qui est un outil de gestion de base de données Web gratuit et open source.

  • Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 20.04 LTS

Vous pouvez également installer WordPress au-dessus de la pile LEMP pour créer votre propre site Web ou blog.

  • Installer WordPress sur Ubuntu 20.04 avec Nginx, MariaDB, PHP7.4 (LEMP)

Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de conseils et astuces. Prenez soin de vous 🙂


Ubuntu
  1. Comment installer Nginx sur Ubuntu 20.04

  2. Comment installer Ubuntu Desktop à partir du serveur Ubuntu

  3. Comment installer la pile LEMP sur Ubuntu 20.04

  4. Comment installer la pile LEMP sur le serveur/bureau Debian 10 Buster

  5. Comment installer LEMP sur Ubuntu 16.04

Comment installer LAMP Stack sur le serveur/bureau Ubuntu 20.04

Comment installer Nginx sur Ubuntu

Comment installer LEMP sur Ubuntu 15.10

Comment installer LEMP sur Ubuntu 16.04

Comment installer Nginx sur Ubuntu 18.04 LTS

Comment installer la pile LEMP avec PhpMyAdmin dans Ubuntu 20.04