GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie den LEMP-Stack auf Ubuntu 20.04 Server/Desktop

Dieses Tutorial zeigt Ihnen, wie Sie den LEMP-Stack installieren (Nginx, MariaDB und PHP7.4) auf Ubuntu 20.04. Ein Software-Stack ist eine Reihe von Software-Tools, die gebündelt sind. LEMP steht für Linux, Nginx (Engine-X), MariaDB/MySQL und PHP, die alle Open Source und kostenlos nutzbar sind. Es ist der am weitesten verbreitete 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.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie ein Ubuntu 20.04-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 DigitalOcean registrieren, um ein kostenloses Guthaben von 50 $ zu erhalten. (Nur für neue Benutzer). Wenn Sie bereits DigitalOcean-Benutzer sind, 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.

Schritt 1:Softwarepakete aktualisieren

Bevor wir den LEMP-Stack installieren, empfiehlt es sich, das Repository und die Softwarepakete zu aktualisieren, indem Sie die folgenden Befehle auf Ihrem Ubuntu 20.04-Betriebssystem ausführen.

sudo apt update

sudo apt upgrade

Schritt 2:Nginx-Webserver 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 können wir Nginx so aktivieren, dass es beim Booten automatisch startet, indem wir den folgenden Befehl ausführen.

sudo systemctl enable nginx

Starten Sie dann Nginx mit diesem Befehl:

sudo systemctl start nginx

Überprüfen Sie jetzt seinen Status.

sudo systemctl status nginx

Ausgabe:

● 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

Aktiviert “ zeigt an, dass der automatische Start beim Booten aktiviert ist, und wir können sehen, dass Nginx ausgeführt wird. Sie können auch sehen, wie viel RAM Nginx aus der Ausgabe verwendet. Wenn der obige Befehl nach dem Ausführen nicht sofort beendet wird. Sie müssen „q drücken ” um es zu beenden.

Überprüfen Sie die Nginx-Version.

nginx -v

Ausgabe:

nginx version: nginx/1.17.9 (Ubuntu)

Geben Sie nun die öffentliche IP-Adresse Ihres Ubuntu 20.04-Servers in die Adressleiste des Browsers ein. Sie sollten die Webseite „Willkommen bei Nginx“ sehen, was bedeutet, dass der Nginx-Webserver ordnungsgemäß ausgeführt wird. Wenn Sie LEMP auf Ihrem lokalen Ubuntu 20.04-Computer installieren, geben Sie 127.0.0.1 ein 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

Schließlich müssen wir www-data erstellen (Nginx-Benutzer) als Eigentümer des Webverzeichnisses. Standardmäßig gehört es dem Root-Benutzer.

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

Schritt 3:MariaDB-Datenbankserver installieren

MariaDB ist ein Drop-in-Ersatz für MySQL. Es wurde von ehemaligen Mitgliedern des MySQL-Teams entwickelt, die befürchten, dass Oracle MySQL in ein Closed-Source-Produkt verwandeln könnte. Geben Sie den folgenden Befehl ein, um MariaDB auf Ubuntu 20.04 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.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

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 die Eingabetaste drücken, um alle verbleibenden Fragen zu beantworten, wodurch der anonyme Benutzer entfernt, die Remote-Root-Anmeldung deaktiviert und die Testdatenbank entfernt wird. Dieser Schritt ist eine Grundvoraussetzung für die MariaDB-Datenbanksicherheit. (Beachten Sie, dass Y großgeschrieben wird, was bedeutet, dass es die Standardantwort ist. )

Standardmäßig verwendet das MaraiDB-Paket auf Ubuntu 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

Führen Sie zum Beenden

aus
exit;

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

mariadb --version

Wie Sie sehen können, haben wir MariaDB 10.3.22 installiert.

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

Schritt 4:PHP7.4 installieren

PHP7.4 ist im Ubuntu 20.04-Repository enthalten und hat eine geringfügige Leistungsverbesserung gegenüber PHP7.3. Geben Sie den folgenden Befehl ein, um PHP7.4 und einige gängige Erweiterungen zu installieren.

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

PHP-Erweiterungen werden häufig für Content-Management-Systeme (CMS) wie WordPress benötigt. Zum Beispiel, wenn Ihrer Installation php7.4-xml fehlt , dann sind einige Ihrer WordPress-Site-Seiten möglicherweise leer und Sie finden einen Fehler im Nginx-Fehlerprotokoll wie:

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

Die Installation dieser PHP-Erweiterungen stellt sicher, dass Ihr CMS reibungslos läuft. Starten Sie nun php7.4-fpm.

sudo systemctl start php7.4-fpm

Autostart beim Booten aktivieren.

sudo systemctl enable php7.4-fpm

Status prüfen:

systemctl status php7.4-fpm

Beispielausgabe:

● 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

Wenn der obige Befehl nach dem Ausführen nicht sofort beendet wird. Sie müssen „q drücken ” um es zu beenden.

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

Verwenden Sie dann einen Befehlszeilen-Texteditor wie Nano, um eine brandneue Serverblockdatei unter /etc/nginx/conf.d/ zu erstellen Verzeichnis.

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

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 Enter bestätigen. 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-FPM mit dem Nginx-Webserver zu testen, müssen wir eine info.php erstellen Datei im Webroot-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.

Herzlichen Glückwunsch! Sie haben Nginx, MariaDB und PHP7.4 erfolgreich auf Ubuntu 20.04 installiert. Zur Sicherheit Ihres Servers sollten Sie info.php löschen Datei jetzt, um zu verhindern, dass Hacker sie sehen.

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

Tipp zur Fehlerbehebung

Wenn Fehler auftreten, können Sie das Nginx-Fehlerprotokoll überprüfen (/var/log/nginx/error.log ), um herauszufinden, was falsch 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 automatisch neu gestartet wird nachdem ein Fehler erkannt wurde. Der Standardwert von RetartSec beträgt 100 ms , was zu klein ist. Nginx kann sich darüber beschweren, dass „Startanforderung zu schnell wiederholt wird“, wenn RestartSec ist nicht groß genug.

[Service]
Restart=always
RestartSec=5s

Speichern und schließen Sie die Datei. Laden Sie dann systemd neu, damit die Änderungen wirksam werden.

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

Nächster Schritt

Ich hoffe, dieses Tutorial hat Ihnen geholfen, den LEMP-Stack unter Ubuntu 20.04 LTS zu installieren . Möglicherweise möchten Sie phpMyAdmin installieren, ein kostenloses und webbasiertes Open-Source-Datenbankverwaltungstool.

  • So installieren Sie phpMyAdmin mit Nginx (LEMP) auf Ubuntu 20.04 LTS

Sie können WordPress auch auf dem LEMP-Stack installieren, um Ihre eigene Website oder Ihren eigenen Blog zu erstellen.

  • Installieren Sie WordPress auf Ubuntu 20.04 mit Nginx, MariaDB, PHP7.4 (LEMP)

Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf 🙂


Ubuntu
  1. So installieren Sie Nginx unter Ubuntu 20.04

  2. So installieren Sie Ubuntu Desktop von Ubuntu Server

  3. So installieren Sie den LEMP-Stack unter Ubuntu 20.04

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

  5. So installieren Sie LEMP unter Ubuntu 16.04

So installieren Sie LAMP Stack auf Ubuntu 20.04 Server/Desktop

So installieren Sie Nginx auf Ubuntu

So installieren Sie LEMP unter Ubuntu 15.10

So installieren Sie LEMP auf Ubuntu 16.04

So installieren Sie Nginx unter Ubuntu 18.04 LTS

So installieren Sie den LEMP-Stack mit PhpMyAdmin in Ubuntu 20.04