Installiere den LEMP-Stack (Nginx, PHP und MariaDB) unter Debian 11

Der LEMP Stack ist eine Sammlung von Open-Source-Software und Frameworks oder Bibliotheken, die zum Hosten von Webanwendungen im Internet verwendet werden. Ein Stack besteht aus dem Betriebssystem Linux, dem Webserver Nginx, dem Datenbankserver MariaDB/MySQL und der Programmiersprache PHP. Ein LEMP wird von der Community gut unterstützt und in vielen hochskalierten Webanwendungen rund um den Globus eingesetzt.

In diesem Beitrag zeigen wir dir, wie du den LEMP-Stack unter Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Bevor du beginnst, solltest du deine Systempakete auf die neueste Version aktualisieren. Du kannst alle Pakete mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald dein System aktualisiert ist, kannst du mit dem nächsten Schritt fortfahren.

Nginx Webserver installieren

Nginx ist ein kostenloser und quelloffener Webserver, der eine ereignisgesteuerte Architektur verfolgt und mehrere Anfragen in einem Thread bearbeiten kann. Er ist mit den gängigsten Anwendungen kompatibel und wird für die Bereitstellung statischer Dateien verwendet.

Standardmäßig ist das Nginx-Paket im Standard-Repository von Debian 11 enthalten. Du kannst es mit dem folgenden Befehl installieren:

apt-get install nginx -y

Sobald Nginx installiert ist, starte den Nginx-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:

systemctl start nginx
systemctl enable nginx

Du kannst die installierte Version von Nginx auch mit dem folgenden Befehl überprüfen:

nginx -v

Du solltest die folgende Ausgabe sehen:

nginx version: nginx/1.18.0

Standardmäßig läuft Nginx auf Port 80. Du kannst dies mit dem folgenden Befehl überprüfen:

ss -antpl | grep nginx

Du solltest die folgende Ausgabe sehen:

LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=44342,fd=8),("nginx",pid=44341,fd=8))
LISTEN 0      511             [::]:80           [::]:*    users:(("nginx",pid=44342,fd=9),("nginx",pid=44341,fd=9))

Du kannst die Nginx-Installation auch mit der URL http://your-server-ip überprüfen. Auf der folgenden Seite solltest du die Nginx-Testseite sehen:

Nginx Willkommensseite

Jetzt ist der Nginx-Webserver installiert. Du kannst jetzt mit dem nächsten Schritt fortfahren.

MariaDB-Datenbankserver installieren

MariaDB ist eine Open-Source SQL-basierte Datenbank, die zum Speichern und Verwalten von Daten für Websites verwendet wird. Standardmäßig ist das MariaDB-Paket im Standard-Repository von Debian 11 enthalten. Du kannst es mit dem folgenden Befehl installieren:

apt-get install mariadb-server -y

Sobald der MariaDB-Datenbankserver installiert ist, starte den MariaDB-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:

systemctl start mariadb
systemctl enable mariadb

Du kannst den Status des MariaDB-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status mariadb

Du solltest die folgende Ausgabe sehen:

? mariadb.service - MariaDB 10.3.31 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-08-21 04:13:25 UTC; 1min 36s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1838 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 2353)
     Memory: 66.1M
     CGroup: /system.slice/mariadb.service
             ??1838 /usr/sbin/mysqld

Es wird außerdem empfohlen, deine MariaDB-Installation zu sichern und ein MariaDB-Root-Passwort festzulegen. Du kannst das Skript mysql_secure_installation ausführen, um die MariaDB-Installation zu sichern:

mysql_secure_installation

Du wirst aufgefordert, ein MariaDB Root-Passwort zu setzen, anonyme Benutzer zu entfernen, den Root-Login aus der Ferne zu verbieten und die Testdatenbank zu entfernen (siehe unten):

Enter current password for root (enter for none): 
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Standardmäßig läuft MariaDB auf Port 3306. Du kannst dies mit dem folgenden Befehl überprüfen:

ss -antpl | grep mariadb

Du solltest den folgenden Befehl sehen:

LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*    users:(("mariadbd",pid=12181,fd=15))

Um eine Verbindung zur MariaDB-Shell herzustellen, führe den folgenden Befehl aus:

mysql -u root -p

Gib dein MariaDB-Root-Passwort ein und drücke die Eingabetaste, um dich mit der MariaDB-Shell zu verbinden. Sobald du verbunden bist, solltest du die folgende Ausgabe sehen:

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
Server version: 10.5.11-MariaDB-1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Führe nun den folgenden Befehl aus, um die MariaDB-Version zu überprüfen:

MariaDB [(none)]> SELECT VERSION();

Du solltest die folgende Ausgabe sehen:

+-------------------+
| VERSION()         |
+-------------------+
| 10.5.11-MariaDB-1 |
+-------------------+
1 row in set (0.001 sec)

Jetzt ist der MariaDB-Datenbankserver installiert und gesichert. Du kannst jetzt mit dem nächsten Schritt fortfahren.

PHP-Sprache installieren

PHP steht für Hypertext Preprocessor und ist eine Skriptsprache, die auf der Serverseite verwendet wird. Sie ist quelloffen, wird von einer großen Gemeinschaft unterstützt und wird zum Hosten von PHP-Anwendungen im Internet verwendet.

Die Standardversion von PHP in Debian 11 ist PHP 7.4. Mit dem folgenden Befehl kannst du PHP zusammen mit anderen häufig verwendeten Erweiterungen installieren:

apt-get install php php-fpm php-cli php-mysql php-zip php-curl php-xml -y

Sobald PHP installiert ist, überprüfe die PHP-Version mit folgendem Befehl:

php -v

Du solltest die folgende Ausgabe sehen:

PHP 7.4.21 (cli) (built: Jul  2 2021 03:59:48) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies

Einen virtuellen Host für Nginx erstellen

Hier werden wir ein Verzeichnis example.com erstellen, um eine PHP-Seite zu hosten. Du kannst es mit dem folgenden Befehl erstellen:

mkdir /var/www/html/example.com

Als Nächstes setzt du den Eigentümer des Verzeichnisses example.com auf www-data:

chown -R www-data:www-data /var/www/html/example.com

Als Nächstes erstellst du eine Konfigurationsdatei für den virtuellen Nginx-Host mit dem folgenden Befehl:

nano /etc/nginx/conf.d/example.conf

Füge die folgenden Zeilen hinzu:

server {

  listen 80;
  server_name example.com;

  root /var/www/html/example.com;
  index index.php;
  access_log /var/log/nginx/example_access.log;
  error_log /var/log/nginx/example_error.log;

  client_max_body_size 100M;

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

  location ~ \.php$ {
    try_files $uri =404;
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

}

Speichere und schließe die Datei und überprüfe Nginx mit dem folgenden Befehl auf Konfigurationsfehler:

nginx -t

Du solltest die folgende Ausgabe sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte anschließend den Nginx-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart nginx

Du kannst den Status des Nginx-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du solltest die folgende Ausgabe sehen:

? 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 Sat 2021-08-21 04:37:27 UTC; 5s ago
       Docs: man:nginx(8)
   Main PID: 4378 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 6.2M
     CGroup: /system.slice/nginx.service
             ??4378 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??4379 nginx: worker process

Aug 21 04:37:27 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 21 04:37:27 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Überprüfe die PHP-Installation auf Nginx

Als Nächstes musst du eine PHP-Beispieldatei erstellen, die über den Nginx-Webserver bereitgestellt wird. Du kannst eine phpinfo.php Datei in deinem example.com Verzeichnis erstellen:

nano /var/www/html/example.com/phpinfo.php

Füge die folgende Zeile ein:

<?php phpinfo(); ?>

Speichere und schließe die Datei, öffne dann deinen Webbrowser und rufe deine PHP-Seite über die URL http://example.com/phpinfo.php auf. Du solltest deine PHP-Seite auf dem folgenden Bildschirm sehen:

Fazit

In der obigen Anleitung haben wir erklärt, wie man den LEMP-Stack unter Debian 11 installiert. Jetzt kannst du deine erste Website mit dem LEMP-Stack hosten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …