GNU/Linux >> Tutoriels Linux >  >> Debian

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

Ce tutoriel va vous montrer comment installer Nginx, MariaDB et PHP7.3 (pile LEMP) sur Debian 10 Buster. Une pile logicielle est un ensemble d'outils logiciels regroupés. LEMP signifie L inux, Nginx , M ariaDB/M ySQL et P HP, qui sont tous open source et gratuits. Il s'agit d'une pile logicielle très 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.

Les quatre composants sont gratuits et open-source. Cependant, étant donné que MySQL appartient désormais à Oracle et qu'il est possible qu'Oracle en fasse un produit à source fermée, nous choisirons MariaDB au lieu de MySQL.

Prérequis pour l'installation de la pile LEMP sur Debian 10 Buster

Pour suivre ce tutoriel, vous avez besoin d'un système d'exploitation Debian 10 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 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 une 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.

Veuillez noter que vous devez avoir le privilège root lors de l'installation de logiciels sur Debian. Vous pouvez ajouter sudo au début d'une commande, ou utilisez su - commande pour passer à l'utilisateur root.

Étape 1 :Mettre à jour les packages logiciels

Avant d'installer la pile LEMP, c'est une bonne idée de mettre à jour le référentiel et les packages logiciels. Exécutez la commande suivante sur votre système d'exploitation Debian 10.

sudo apt update

sudo apt upgrade

Étape 2 :Installer le serveur Web Nginx sur Debian 10

Nginx est un serveur Web haute performance 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é, Nginx devrait démarrer automatiquement. Vérifiez son statut avec systemctl .

systemctl status nginx

Exemple de sortie :

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Sat 2019-08-10 06:20:26 UTC; 54s ago
     Docs: man:nginx(8)
 Main PID: 19713 (nginx)
    Tasks: 2 (limit: 1149)
   Memory: 4.6M
   CGroup: /system.slice/nginx.service
           ├─19713 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─19714 nginx: worker process

Astuce :si la commande ci-dessus ne se ferme pas immédiatement, vous pouvez appuyer sur la touche Q pour reprendre le contrôle de la fenêtre du terminal.

S'il ne fonctionne pas, utilisez systemctl pour le démarrer.

sudo systemctl start nginx

C'est aussi une bonne idée d'activer Nginx pour qu'il démarre automatiquement au démarrage.

sudo systemctl enable nginx

Vérifiez la version de Nginx :

sudo nginx -v

Sortie :

nginx version: nginx/1.14.2

Saisissez maintenant l'adresse IP publique de votre serveur Debian 10 dans la barre d'adresse du navigateur. Vous devriez voir la page Web par défaut "Bienvenue sur nginx", ce qui signifie que le serveur Web Nginx fonctionne correctement. Si vous installez LEMP sur votre ordinateur Debian 10 local, vous devez taper 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

Nous devons maintenant définir www-data (utilisateur Nginx) en tant que propriétaire de la racine du document (également appelée racine Web). Par défaut, il appartient à l'utilisateur root. (Notez que Nginx utilise par défaut /usr/share/nginx/html/ en tant que racine Web, alors que le serveur Web Apache utilise /var/www/html/ pendant que nous nous enracinons.)

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

Étape 3 :Installez le serveur de base de données MariaDB sur Debian 10

MariaDB est un remplacement direct de MySQL. Entrez la commande suivante pour l'installer sur Debian 10.

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.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: 
   Active: active (running) since Sat 2019-08-10 06:38:58 UTC; 13s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 20669 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1149)
   Memory: 77.7M
   CGroup: /system.slice/mariadb.service
           └─20669 /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 simplement appuyer sur Entrée pour répondre à toutes les questions restantes. Cela 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 la lettre Y est en majuscule, ce qui signifie que c'est la réponse par défaut.)

Par défaut, le package MaraiDB sur Debian 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

ou

sudo mysql -u root

Pour quitter, exécutez

exit;

Vérifiez les informations de version du serveur MariaDB.

mariadb --version

Sortie :

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

Étape 4 :Installez PHP7.3 sur Debian 10

Au moment d'écrire ces lignes, PHP7.3 est la dernière version stable de PHP et présente une amélioration mineure des performances par rapport aux versions précédentes. Entrez la commande suivante pour installer PHP7.3 et certaines extensions PHP courantes du référentiel Debian 10.

sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline

Vérifiez les informations de version de PHP.

php --version

Sortie :

PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

Lancez maintenant php7.3-fpm.

sudo systemctl start php7.3-fpm

Activer le démarrage automatique au démarrage.

sudo systemctl enable php7.3-fpm

Vérifier l'état :

systemctl status php7.3-fpm

É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

Créez ensuite un tout nouveau fichier de bloc de serveur sous /etc/nginx/conf.d/ répertoire avec un éditeur de texte en ligne de commande, tel que Nano.

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.3-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 Entrée pour 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 les scripts PHP avec le serveur Nginx, nous devons créer un info.php fichier dans le répertoire racine Web.

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, entrez 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. Vous pouvez constater que Zend OPcache est activé.

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 la détection d'une panne.

[Service]
Restart=always
RestartSec=5s

Enregistrez et fermez le fichier. Rechargez ensuite systemd.

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

Debian
  1. Comment installer Spotify sur Debian 10 Buster Linux Desktop

  2. Comment configurer un serveur LEMP sur Debian 10 Buster

  3. Comment installer le serveur MySQL sur Debian 10 Buster

  4. Comment installer la pile LEMP Nginx, MySQL, PHP sur Debian 11

  5. Comment installer la pile LEMP sur Debian 10 Buster

Comment installer WordPress avec LEMP Stack sur Debian 11 Bullseye

Comment installer la pile LEMP sur Debian 11

Comment installer un serveur minimal Debian 10 (Buster)

Comment installer Nginx dans Debian 7

Comment installer la pile Nginx, MySQL, PHP (LEMP) sur un serveur cloud Debian 8.3

Comment installer la pile LEMP sur Rocky Linux 8