Installieren Sie den LEMP-Stack auf Ubuntu 20.04

LEMP ist ein Akronym für Linux, NGINX (ausgesprochen als Engine X), MySQL und PHP. Dies sind alles beliebte Open-Source-Tools, die typischerweise in der Webentwicklung verwendet werden. LEMP-Stack wird häufig zum Hosten dynamischer Websites verwendet. Die meisten Content-Management-Systeme wie WordPress, Drupal und Joomla erstellen dynamische Webseiten.

Wenn ein Anfrage kommt, führt der Server den PHP-Code aus, um die HTML-Version zusammenzustellen und die Backend-Datenbank abzufragen, um Inhalte zum Einfügen in HTML abzurufen.

In dieser Anleitung werden wir die Schritte zur Installation des LEMP-Stack an Ubuntu 20.04.

Voraussetzungen

  • Ein funktionierender Ubuntu 20.04 Linux-Server
  • Ein Benutzer mit sudo Privilegien

Dies kümmert sich um den ersten Teil des LEMP-Stacks, d. Linux.

NGINX-Webserver installieren

Für den zweiten Teil des LEMP-Stacks müssten wir NGINX für die Bereitstellung von Webressourcen für Clients einrichten.

Es ist einfach zu NGINX installieren unter Ubuntu 20.04 mit dem folgenden Befehl.

$ sudo apt installieren nginx

Nachdem die Installation erfolgreich abgeschlossen wurde, können Sie den Status von NGINX überprüfen, indem Sie den nächsten Befehl ausführen.

$ sudo systemctl-status nginx

NGINX-Status prüfen

Sie sollten eine Meldung sehen, die bestätigt, dass NGINX aktiv ist (läuft). Andernfalls führen Sie den nächsten Befehl aus, um NGINX zu starten.

$ sudo systemctl starte nginx

Jetzt können Sie einen Webbrowser öffnen und die IP-Adresse Ihres Servers eingeben. Sie sollten die Standardseite von NGINX sehen.

Notiz: Sie können die IP-Adresse Ihres Servers abrufen, indem Sie den folgenden Befehl ausführen.

$ curl ifconfig.me

Oder einfach eingeben localhost in Ihrem Webbrowser, wenn Sie lokal verbunden sind.

NGINX-StandardwebseiteNGINX-Standardwebseite

Ändern Sie das standardmäßige NGINX-Dokument-Root

Die obige Webseite “Willkommen bei nginx” wurde über das Standard-Dokumentenstammverzeichnis bereitgestellt, d. /var/www/html basierend auf den Konfigurationsanweisungen in der standardmäßigen Serverblockdatei. Die standardmäßige NGINX-Server-Blockdatei ist /etc/nginx/sites-available/default. Anstatt diese Standardkonfiguration zu verwenden, können wir unsere erstellen.

Hier ist wie.

Erstellen Sie zunächst ein Verzeichnis unter /var/www, das als neuer Standard-NGINX-Dokumentenstamm dient. Ich habe meine benannt Cloudindevs entsprechend dem ersten Teil meines registrierten Domainnamens. Sie können Ihren auf ähnliche Weise benennen.

$ sudo mkdir /var/www/cloudindevs

Stellen Sie als Nächstes sicher, dass das NGINX-Dienstkonto (www-data) Zugriff auf das Dokumentenstammverzeichnis hat.

Hinweis: Die Verwendung der WWW-Daten ist nicht zwingend erforderlich. Sie können jeden sinnvollen Benutzernamen erstellen und definieren user in der Datei /etc/nginx/nginx.conf.

Geben Sie Folgendes ein, um den Besitz des neuen Dokumentenstamms in www-data zu ändern:

$ sudo chown www-data:www-data /var/www/cloudindevs

Führen Sie den folgenden chmod-Befehl aus, um Berechtigungen zuzuweisen:

$ sudo chmod -R 755 /var/www/cloudindevs

Danach können Sie eine neue NGINX-Server-Blockdatei erstellen, indem Sie die vorhandene wie folgt kopieren.

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/cloudindevs.com

Bearbeiten Sie als Nächstes die neue NGINX-Serverblockdatei und ändern Sie die Wurzel -Anweisung, um auf Ihr neues Dokumentstammverzeichnis zu verweisen.

$ sudo nano /etc/nginx/sites-available/cloudindevs.com

NGINX-Stammverzeichnis ändernNGINX-Stammverzeichnis ändern

Der nächste Schritt besteht darin, die neue Serverblockdatei zu aktivieren, indem Sie sie wie folgt sym-linken.

$ sudo ln -s /etc/nginx/sites-available/cloudindevs.com /etc/nginx/sites-enabled

Sie können jetzt die frühere Standard-NGINX-Server-Blockdatei deaktivieren, indem Sie sie mit dem folgenden Befehl aufheben.

$ sudo Verknüpfung von /etc/nginx/sites-enabled/default aufheben

Testen Sie Ihre NGINX-Konfiguration mit dem nächsten Befehl.

$ sudo nginx -t

Um diese Änderung richtig zu testen, kopieren Sie den folgenden HTML-Beispielcode.

<head>
<title>Successfully changed NGINX default document root!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx default document root was successfully changed.</p>
</body>
</html>

Erstellen Sie mit dem folgenden Befehl eine neue Indexseite im neuen Dokumentenstammverzeichnis.

$ sudo nano /var/www/cloudindevs/index.html

Fügen Sie den HTML-Code in den Texteditor ein, speichern Sie und close die Datei.

Starten Sie NGINX mit dem folgenden Befehl neu.

$ sudo systemctl Neustart nginx

Öffnen Sie abschließend einen Webbrowser und geben Sie die IP-Adresse Ihres Servers ein.

Sobald Sie die Nachricht im Bild unten sehen, können Sie loslegen.

NGINX neue Standard-WebseiteNGINX neue Standard-Webseite

Installieren Sie das MySQL-Datenbankverwaltungssystem

Der dritte Teil des LEMP-Stacks ist MySQL — ein häufig verwendetes Open-Source-Datenbankverwaltungssystem zum Speichern und Verwalten von Anwendungsdaten. MariaDB ist ein guter Ersatz für MySQL im LEMP-Stack, da es eine verbesserte Leistung bietet. In diesem Artikel verwenden wir jedoch das traditionelle MySQL.

Sie können MySQL unter Ubuntu 20.04 mit dem folgenden Befehl installieren.

$ sudo apt MySQL-Server installieren

Nach der Installation können Sie die MySQL-Version mit dem nächsten Befehl überprüfen.

$ mysql –version

MySQL konfigurieren

Um MySQL richtig zu konfigurieren, wird empfohlen, das Skript mysql_secure_installation wie folgt auszuführen.

$ sudo mysql_secure_installation

Kurz gesagt, das Skript fordert Sie auf:

  • Aktivieren/Deaktivieren der Komponente VALIDATE PASSWORD. Dies bezieht sich auf die Anforderung der Kennwortkomplexität
  • Legen Sie ein neues Passwort für den MySQL-Root-Benutzer fest
  • Anonyme Benutzer entfernen
  • Root-Login aus der Ferne verbieten
  • Testdatenbank entfernen
  • Laden Sie die Berechtigungstabellen neu, um die Änderungen zu übernehmen

Sobald das Skript mysql_secure_installation mit einer Erfolgsmeldung abgeschlossen ist, können Sie sich bei MySQL anmelden.

Bei MySQL anmelden

Um sich bei MySQL anzumelden, führen Sie den folgenden Befehl aus und geben Sie Ihr MySQL-Root-Passwort ein, wenn Sie dazu aufgefordert werden.

$ sudo mysql -u root -p

Du solltest das sehen mysql> Eingabeaufforderung, die bestätigt, dass Sie jetzt über einen funktionierenden MySQL-Server verfügen.

Bei MySQL anmeldenBei MySQL anmelden

Typ Verlassen und drücken Sie die Eingabetaste, um sich von MySQL abzumelden.

mysql> beenden

PHP installieren

Schließlich vervollständigt die Installation von Hypertext Preprocessor (PHP) den LEMP-Stack. PHP handhabt die dynamische Verarbeitung von Webinhalten und interagiert mit MySQL.

In diesem Abschnitt werden wir installieren PHP-FPM (Fast-CGI Process Manager) und konfigurieren Sie ihn für die Verwendung durch den NGINX-Webserver.

PHP-FPM installieren

Führen Sie den folgenden Befehl aus, um PHP-FPM und zugehörige Komponenten unter Ubuntu 20.04 zu installieren.

$ sudo apt install php-fpm php-mysql

Überprüfen Sie nach der Installation die PHP-Version mit dem folgenden Befehl.

$ php -v

Konfigurieren Sie NGINX für die Verwendung von PHP-FPM

Bearbeiten Sie Ihre NGINX-Serverblock-Konfigurationsdatei wie folgt.

$ sudo nano /etc/nginx/sites-available/cloudindevs.com

Drücken Sie den Abwärtspfeil auf Ihrer Tastatur, bis Sie zu der Zeile gelangen, die mit beginnt Index. Jetzt füge hinzu index.php in die Liste, wie im Bild unten gezeigt.

index.php zur NGINX-Indexliste hinzufügenindex.php zur NGINX-Indexliste hinzufügen

Drücken Sie als Nächstes erneut die Pfeiltaste nach unten, bis Sie zum Abschnitt mit dem Titel “PHP-Skripte an den FASTCGI-Server übergeben.”

Entkommentieren Sie die folgenden Zeilen.

location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

Da ich nun möchte, dass mein NGINX-Server über meinen registrierten Domainnamen erreichbar ist, habe ich einige zusätzliche Änderungen an der Serverblockdatei vorgenommen.

Unten ist ein Ausschnitt der Serverblockdatei, nachdem diese Änderungen vorgenommen wurden. Wenn Sie dasselbe tun möchten, können Sie die Konfigurationsdetails unten kopieren und einfach ersetzen Cloudindevs entsprechend.

server {
listen 80;
root /var/www/cloudindevs;
index index.php index.html index.htm;
server_name cloudindevs.com www.cloudindevs.com;

location / {

try_files $uri $uri/ =404;

}

location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

}

Save Änderungen und close die Konfigurationsdatei des Serverblocks.

Hinweis: Standardmäßig PHP-FPM Die Poolkonfiguration wird in der Datei /etc/php/7.4/fpm/pool.d/www.conf gespeichert. Hier können Sie definieren Nutzer und Gruppe Pro php-fpm.

PHP-FPM-Konfiguration testen

Denken Sie daran, dass wir index.php zur Liste der Indexdateien in der NGINX-Serverblockkonfigurationsdatei hinzugefügt haben. Daher müssen wir die Datei index.php im neuen Standarddokumentstamm wie folgt erstellen.

$ sudo nano /var/www/cloudindevs/index.php

Kopieren Sie den folgenden PHP-Code und fügen Sie ihn in den Texteditor ein.

<?php
phpinfo();
?>

Save Änderungen und close die Datei.

Starten Sie NGINX neu mit:

$ sudo systemctl Neustart nginx

Öffnen Sie einen Webbrowser und geben Sie die IP-Adresse Ihres Servers ein oder localhost wenn Sie lokal verbunden sind. Sie sollten die folgende Seite sehen, die bestätigt, dass PHP-FPM richtig funktioniert.

Testen Sie die PHP-FPM-Konfiguration mit NGINXTesten Sie die PHP-FPM-Konfiguration mit NGINX

Aus Sicherheitsgründen können Sie die Datei index.php wie folgt entfernen, um zu vermeiden, dass zu viele Informationen über Ihren Server nach außen preisgegeben werden.

$ sudo rm /var/www/cloudindevs/index.php

Fazit

Wenn Sie die Schritte in dieser Anleitung befolgen, sollten Sie jetzt eine funktionierende LEMP-Plattform unter Ubuntu 20.04 haben. Sollten Sie Erläuterungen zu diesem Leitfaden benötigen, teilen Sie uns dies im Kommentarbereich unten mit.