GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie den LEMP-Stack auf Debian 10 Buster Server/Desktop

Dieses Tutorial zeigt Ihnen, wie Sie Nginx, MariaDB und PHP7.3 (LEMP-Stack) auf Debian 10 Buster installieren. Ein Software-Stack ist eine Reihe von Software-Tools, die gebündelt sind. LEMP steht für L inux, Nginx , M ariaDB/M ySQL und P HP, die alle Open Source sind und kostenlos verwendet werden können. Es ist ein sehr verbreiteter Software-Stack, der dynamische Websites und Webanwendungen unterstützt. Linux ist das Betriebssystem; Nginx ist der Webserver; MariaDB/MySQL ist der Datenbankserver und PHP ist die serverseitige Skriptsprache, die für die Generierung dynamischer Webseiten verantwortlich ist.

Alle vier Komponenten sind kostenlos und Open Source. Da MySQL jetzt jedoch im Besitz von Oracle ist und die Möglichkeit besteht, dass Oracle es in ein Closed-Source-Produkt umwandelt, werden wir uns für MariaDB anstelle von MySQL entscheiden.

Voraussetzungen für die Installation von LEMP Stack auf Debian 10 Buster

Um diesem Tutorial zu folgen, benötigen Sie ein Debian 10-Betriebssystem, das auf Ihrem lokalen Computer oder auf einem Remote-Server ausgeführt wird.

Wenn Sie nach einem VPS (Virtual Private Server) suchen, können Sie über diesen speziellen Link ein Konto bei Vultr registrieren, um ein kostenloses Guthaben von 50 $ zu erhalten (nur für neue Benutzer). Und wenn Sie einen LEMP-Stack mit einem Domainnamen einrichten müssen, empfehle ich den Kauf von Domainnamen von NameCheap, da der Preis niedrig ist und Whois-Datenschutz lebenslang kostenlos ist.

Bitte beachten Sie, dass Sie Root-Rechte haben müssen, wenn Sie Software unter Debian installieren. Sie können sudo hinzufügen am Anfang eines Befehls oder verwenden Sie su - Befehl, um zum Root-Benutzer zu wechseln.

Schritt 1:Softwarepakete aktualisieren

Bevor wir den LEMP-Stack installieren, ist es eine gute Idee, das Repository und die Softwarepakete zu aktualisieren. Führen Sie den folgenden Befehl auf Ihrem Debian 10-Betriebssystem aus.

sudo apt update

sudo apt upgrade

Schritt 2:Nginx-Webserver auf Debian 10 installieren

Nginx ist ein Hochleistungs-Webserver und heutzutage sehr beliebt. Es kann auch als Reverse-Proxy und Caching-Server verwendet werden. Geben Sie den folgenden Befehl ein, um den Nginx-Webserver zu installieren.

sudo apt install nginx

Nach der Installation sollte Nginx automatisch gestartet werden. Überprüfen Sie seinen Status mit systemctl .

systemctl status nginx

Beispielausgabe:

● 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

Hinweis:Wenn der obige Befehl nicht sofort beendet wird, können Sie die Q-Taste drücken, um die Kontrolle über das Terminalfenster zurückzugewinnen.

Wenn es nicht läuft, verwenden Sie systemctl, um es zu starten.

sudo systemctl start nginx

Es ist auch eine gute Idee, Nginx so zu aktivieren, dass es beim Booten automatisch startet.

sudo systemctl enable nginx

Überprüfen Sie die Nginx-Version:

sudo nginx -v

Ausgabe:

nginx version: nginx/1.14.2

Geben Sie nun die öffentliche IP-Adresse Ihres Debian 10-Servers in die Adressleiste des Browsers ein. Sie sollten die Standardwebseite „Welcome to nginx“ sehen, was bedeutet, dass der Nginx-Webserver ordnungsgemäß ausgeführt wird. Wenn Sie LEMP auf Ihrem lokalen Debian 10-Computer installieren, sollten Sie 127.0.0.1 eingeben oder localhost in der Adressleiste des Browsers.

Wenn die Verbindung abgelehnt wird oder nicht hergestellt werden kann, verhindert möglicherweise eine Firewall eingehende Anfragen an TCP-Port 80. Wenn Sie die iptables-Firewall verwenden, müssen Sie den folgenden Befehl ausführen, um TCP-Port 80 zu öffnen.

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

Wenn Sie eine UFW-Firewall verwenden, führen Sie diesen Befehl aus, um TCP-Port 80 zu öffnen.

sudo ufw allow http

Jetzt müssen wir www-data festlegen (Nginx-Benutzer) als Besitzer des Dokumentstammverzeichnisses (auch bekannt als Webstammverzeichnis). Standardmäßig gehört es dem Root-Benutzer. (Beachten Sie, dass Nginx standardmäßig /usr/share/nginx/html/ verwendet als Web-Root, während der Apache-Webserver /var/www/html/ verwendet wie wir rooten.)

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

Schritt 3:MariaDB-Datenbankserver auf Debian 10 installieren

MariaDB ist ein Drop-in-Ersatz für MySQL. Geben Sie den folgenden Befehl ein, um es unter Debian 10 zu installieren.

sudo apt install mariadb-server mariadb-client

Nach der Installation sollte der MariaDB-Server automatisch gestartet werden. Verwenden Sie systemctl um seinen Status zu überprüfen.

systemctl status mariadb

Ausgabe:

● 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

Wenn es nicht läuft, starten Sie es mit diesem Befehl:

sudo systemctl start mariadb

Damit MariaDB beim Booten automatisch startet, führen Sie

aus
sudo systemctl enable mariadb

Führen Sie nun das Sicherheitsskript nach der Installation aus.

sudo mysql_secure_installation

Wenn Sie aufgefordert werden, das MariaDB-Root-Passwort einzugeben, drücken Sie die Eingabetaste, da das Root-Passwort noch nicht festgelegt ist. Geben Sie dann y ein um das Root-Passwort für den MariaDB-Server festzulegen.

Als nächstes können Sie einfach die Eingabetaste drücken, um alle verbleibenden Fragen zu beantworten. Dadurch wird der anonyme Benutzer entfernt, die Remote-Root-Anmeldung deaktiviert und die Testdatenbank entfernt. Dieser Schritt ist eine Grundvoraussetzung für die MariaDB-Datenbanksicherheit. (Beachten Sie, dass der Buchstabe Y wird groß geschrieben, was bedeutet, dass es die Standardantwort ist.)

Standardmäßig verwendet das MaraiDB-Paket auf Debian unix_socket, um die Benutzeranmeldung zu authentifizieren, was im Grunde bedeutet, dass Sie den Benutzernamen und das Passwort des Betriebssystems verwenden können, um sich bei der MariaDB-Konsole anzumelden. Sie können also den folgenden Befehl ausführen, um sich anzumelden, ohne das MariaDB-Root-Passwort anzugeben.

sudo mariadb -u root

oder

sudo mysql -u root

Führen Sie zum Beenden

aus
exit;

Überprüfen Sie die Versionsinformationen des MariaDB-Servers.

mariadb --version

Ausgabe:

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

Schritt 4:Installieren Sie PHP7.3 auf Debian 10

Zum Zeitpunkt der Erstellung dieses Artikels ist PHP7.3 die neueste stabile Version von PHP und weist gegenüber früheren Versionen eine geringfügige Leistungsverbesserung auf. Geben Sie den folgenden Befehl ein, um PHP7.3 und einige gängige PHP-Erweiterungen aus dem Debian 10-Repository zu installieren.

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

Überprüfen Sie die PHP-Versionsinformationen.

php --version

Ausgabe:

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

Starten Sie nun php7.3-fpm.

sudo systemctl start php7.3-fpm

Autostart beim Booten aktivieren.

sudo systemctl enable php7.3-fpm

Status prüfen:

systemctl status php7.3-fpm

Schritt 5:Erstellen Sie einen Nginx-Serverblock

Ein Nginx-Serverblock ist wie ein virtueller Host in Apache. Wir werden den Standardserverblock nicht verwenden, da er nicht ausreicht, um PHP-Code auszuführen, und wenn wir ihn ändern, wird es zu einem Chaos. Entfernen Sie also den default Symlink in sites-enabled Verzeichnis, indem Sie den folgenden Befehl ausführen. (Es ist immer noch als /etc/nginx/sites-available/default verfügbar .)

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

Erstellen Sie dann eine brandneue Serverblockdatei unter /etc/nginx/conf.d/ Verzeichnis mit einem Befehlszeilen-Texteditor wie Nano.

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

Fügen Sie den folgenden Text in die Datei ein. Das folgende Snippet veranlasst Nginx, IPv4-Port 80 und IPv6-Port 80 mit einem Catch-All-Servernamen zu überwachen.

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;
  }
}

Speichern und schließen Sie die Datei. (Um eine Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O , und drücken Sie dann zur Bestätigung die Eingabetaste. Drücken Sie zum Beenden Ctrl+X .) Testen Sie dann die Nginx-Konfigurationen.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu.

sudo systemctl reload nginx

Schritt 6:PHP testen

Um PHP-Skripte mit dem Nginx-Server zu testen, müssen wir eine info.php erstellen Datei im Web-Root-Verzeichnis.

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

Fügen Sie den folgenden PHP-Code in die Datei ein.

<?php phpinfo(); ?>

Speichern und schließen Sie die Datei.

Geben Sie nun in der Adressleiste des Browsers server-ip-address/info.php ein . Ersetzen Sie sever-ip-address mit deiner aktuellen IP. Wenn Sie dieser Anleitung auf Ihrem lokalen Computer folgen, geben Sie 127.0.0.1/info.php ein oder localhost/info.php .

Sie sollten die PHP-Informationen Ihres Servers sehen. Dies bedeutet, dass PHP-Skripte ordnungsgemäß mit dem Nginx-Webserver ausgeführt werden können. Sie können feststellen, dass Zend OPcache aktiviert ist.

Automatischer Nginx-Neustart

Wenn Ihr Nginx-Prozess aus irgendeinem Grund beendet wird, müssen Sie den folgenden Befehl ausführen, um ihn neu zu starten.

sudo systemctl restart nginx

Anstatt diesen Befehl manuell einzugeben, können wir Nginx automatisch neu starten lassen, indem wir nginx.service bearbeiten Systemd-Diensteinheit. Um die standardmäßige systemd-Dienstkonfiguration zu überschreiben, erstellen wir ein separates Verzeichnis.

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

Erstellen Sie dann eine Datei in diesem Verzeichnis.

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

Fügen Sie der Datei die folgenden Zeilen hinzu, wodurch Nginx 5 Sekunden nach Erkennung eines Fehlers automatisch neu gestartet wird.

[Service]
Restart=always
RestartSec=5s

Speichern und schließen Sie die Datei. Laden Sie dann systemd neu.

sudo systemctl daemon-reload

Um zu überprüfen, ob dies funktioniert, beenden Sie Nginx mit:

sudo pkill nginx

Überprüfen Sie dann den Nginx-Status. Nginx wird automatisch neu gestartet.

systemctl status nginx

Debian
  1. So installieren Sie Spotify auf dem Debian 10 Buster Linux Desktop

  2. So richten Sie einen LEMP-Server unter Debian 10 Buster ein

  3. So installieren Sie MySQL Server auf Debian 10 Buster

  4. So installieren Sie LEMP Stack Nginx, MySQL, PHP unter Debian 11

  5. So installieren Sie den LEMP-Stack auf Debian 10 Buster

So installieren Sie WordPress mit LEMP Stack auf Debian 11 Bullseye

So installieren Sie den LEMP-Stack unter Debian 11

So installieren Sie einen Debian 10 (Buster) Minimalserver

So installieren Sie Nginx in Debian 7

So installieren Sie Nginx, MySQL, PHP (LEMP) Stack auf einem Debian 8.3 Cloud Server

So installieren Sie den LEMP-Stack unter Rocky Linux 8