LEMP Stack · 9 min read · Sep 10, 2025
Wie man den LEMP-Stack (Linux, Nginx, PHP und MariaDB) auf Ubuntu 24.04 installiert

Der LEMP-Stack (Linux, Nginx, MySQL/MariaDB und PHP) ist eine Gruppe von kostenlosen und Open-Source-Softwareanwendungen zum Hosten und Entwickeln von PHP-Webanwendungen. Der LEMP-Stack kann sowohl für die Bereitstellung statischer als auch dynamischer Webanwendungen verwendet werden.
Diese Anleitung zeigt Ihnen, wie Sie den LEMP-Stack (Linux, Nginx, MySQL/MariaDB und PHP) auf Ubuntu 24.04 “Noble Numbat” installieren. Wir zeigen Ihnen auch, wie Sie den MariaDB-Server sichern und eine Nginx-Serverblockkonfiguration erstellen, um Websites oder Domainnamen zu hosten.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Ubuntu 24.04 “Noble Numbat” mit dem Root-Benutzer oder einem Nicht-Root-Benutzer mit sudo/Administratorrechten haben. Stellen Sie außerdem sicher, dass die UFW (Uncomplicated Firewall) läuft und aktiviert ist.
Installation des Nginx-Webservers
Nginx oder engine-x ist der beliebteste Webserver im Internet. Er wurde populär, weil Nginx hohen Traffic gleichzeitig mit minimalen Systemressourcen verarbeiten kann. In diesem ersten Schritt installieren Sie den Nginx-Webserver auf dem Ubuntu-Server.
Bevor Sie Pakete installieren, aktualisieren und aktualisieren Sie Ihre Ubuntu-Paketliste mit dem folgenden Befehl.
sudo apt update
Installieren Sie den Nginx-Webserver auf Ihrem Ubuntu-Rechner mit dem folgenden Befehl. Geben Sie Y ein, um die Installation zu bestätigen, wenn Sie dazu aufgefordert werden.
sudo apt install nginx
Sobald die Installation abgeschlossen ist, sollte der Nginx-Dienst auf Ihrem System laufen und aktiviert sein. Überprüfen Sie den Nginx-Dienst mit dem folgenden Befehl.
sudo systemctl is-enabled nginx
sudo systemctl status nginxSie sollten sehen, dass der Nginx-Dienst ‘ enabled ‘ ist und der aktuelle Status ‘ active (running) ‘ ist.

Bevor Sie auf Nginx zugreifen, müssen Sie sowohl die HTTP- als auch die HTTPS-Ports auf Ihrem Ubuntu-Server über UFW (Uncomplicated Firewall) öffnen.
Führen Sie den folgenden ‘ ufw ‘ Befehl aus, um das Profil ‘ Nginx Full ‘ zu aktivieren, das HTTP- und HTTPS-Zugriff auf Ihren Ubuntu-Server ermöglicht.
sudo ufw allow 'Nginx Full'Überprüfen Sie nun die UFW-Regeln mit dem folgenden Befehl. Stellen Sie sicher, dass das Profil ‘ Nginx Full ‘ mit dem Status ‘ALLOW’ aktiviert ist.
sudo ufw status
Besuchen Sie schließlich http://192.168.5.30/ von Ihrem bevorzugten Webbrowser aus, um auf Ihre Nginx-Installation zuzugreifen. Wenn alles erfolgreich ist, sollten Sie die Standardseite ‘ index.html ‘ wie folgt erhalten:

Installation des MariaDB-Servers
Nach der Installation von Nginx installieren Sie den MariaDB-Server auf Ubuntu. In diesem Beispiel installieren Sie MariaDB über das Ubuntu-Repository und sichern dann die MariaDB-Installation über das Dienstprogramm ‘ mariadb-secure-installation ‘.
Um den MariaDB-Server auf Ubuntu zu installieren, führen Sie den folgenden ‘ apt install ‘ Befehl aus. Geben Sie Y ein und drücken Sie ENTER, um mit dem Prozess fortzufahren.
sudo apt install mariadb-server
Sobald die Installation abgeschlossen ist, überprüfen Sie den MariaDB-Dienst mit dem folgenden Befehl. Dies zeigt Ihnen den Status des MariaDB-Dienstes.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbDer MariaDB-Dienst ist ‘ enabled ‘ mit dem aktuellen Status ‘ active (running) ‘.

Nachdem Sie den MariaDB-Server installiert haben, müssen Sie ihn über ‘ mariadb-secure-installation ‘ sichern. Damit können Sie das MariaDB-Root-Passwort festlegen, die Remote-Authentifizierung für den Root-Benutzer deaktivieren und auch unnötige Datenbanken und Berechtigungen von Ihrer MariaDB-Serverinstallation entfernen.
Führen Sie den folgenden ‘ mariadb-secure-installation ‘ Befehl aus, um den MariaDB-Server zu sichern.
sudo mariadb-secure-installationJetzt werden Sie nach den folgenden MariaDB-Serverkonfigurationen gefragt:
Drücken Sie ENTER, wenn Sie nach dem MariaDB-Root-Passwort gefragt werden.
Enter current password for root (enter for none):
OK, successfully used password, moving on...Geben Sie ‘ n ‘ ein, wenn Sie gefragt werden, ob Sie zur unix_socket-Authentifizierung wechseln möchten.
Switch to unix_socket authentication [Y/n] n
... skipping.Geben Sie Y ein, um das MariaDB-Root-Passwort zu konfigurieren. Geben Sie dann Ihr neues Passwort ein und wiederholen Sie es.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!Geben Sie Y ein, um den standardmäßigen anonymen Benutzer von Ihrer MariaDB-Serverinstallation zu entfernen.
Remove anonymous users? [Y/n] Y
... Success!Geben Sie Y ein, um das Remote-Login für den MariaDB-Root-Benutzer zu deaktivieren. Der Root-Benutzer sollte immer von localhost aus verbinden.
Disallow root login remotely? [Y/n] Y
... Success!Geben Sie nun erneut Y ein, um die Standarddatenbank test und deren Berechtigungen von Ihrem MariaDB-Server zu entfernen.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!Geben Sie Y ein, um die Berechtigungstabellen neu zu laden und alle Änderungen anzuwenden, die Sie bisher vorgenommen haben.
Reload privilege tables now? [Y/n] Y
... Success!Wenn Sie fertig sind, sehen Sie die folgende Nachricht:
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!Installation von PHP-FPM
PHP-FPM (FastCGI Process Manager) ist eine Alternative zur FastCGI-Implementierung für PHP. Es wird hauptsächlich für stark frequentierte Websites mit Nginx als Webserver verwendet. In diesem Abschnitt installieren Sie PHP-FPM mit einigen zusätzlichen Erweiterungen, wie mysqli für den MySQL/MariaDB-Treiber, opcache und APCu für das Caching.
Installieren Sie PHP-FPM auf Ihrem Ubuntu-Server mit dem folgenden Befehl. Wenn Sie dazu aufgefordert werden, geben Sie Y ein und drücken Sie ENTER, um fortzufahren.
sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip
Nachdem die Installation abgeschlossen ist, sollte der PHP-FPM-Dienst laufen. Überprüfen Sie den Status des PHP-FPM-Dienstes mit dem folgenden Befehl.
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpmWie Sie unten sehen können, ist PHP-FPM ‘ active (running) ‘ und ‘ enabled ‘ beim Systemstart:

Unter Ubuntu läuft der standardmäßige PHP-FPM unter der Sockeldatei. Es ist wichtig, den Pfad der PHP-FPM-Sockeldatei zu kennen, da dieser für die Integration mit dem Nginx-Webserver verwendet wird.
Überprüfen Sie den Speicherort der PHP-FPM-Sockeldatei mit dem folgenden Befehl.
ss -pl | grep phpIm folgenden Output sehen Sie, dass die PHP-FPM-Sockeldatei unter ‘ /run/php/php8.3-fpm.sock ‘ zu finden ist.
Integration von Nginx mit PHP-FPM
Nachdem Sie PHP-FPM installiert haben, ist es an der Zeit, es mit dem Nginx-Webserver zu integrieren. Dazu müssen Sie genau den Pfad der PHP-FPM-Sockeldatei kennen und dann die Standard-Nginx-Serverblockdatei ändern.
Öffnen Sie die Serverblockkonfiguration ‘ /etc/nginx/sites-available/default ‘ mit dem folgenden Befehl des Nano-Editors.
sudo nano /etc/nginx/sites-available/defaultKommentieren Sie die folgenden Zeilen aus und stellen Sie sicher, dass Sie den Pfad der PHP-FPM-Sockeldatei mit dem neuen Speicherort ändern.
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}Speichern Sie die Datei und beenden Sie den Editor.
Führen Sie nun den Befehl ‘ nginx ‘ aus, um Ihre Nginx-Syntax zu überprüfen. Sie müssen diesen Befehl nach Änderungen an der Nginx-Konfiguration ausführen.
sudo nginx -tWenn Sie eine korrekte Nginx-Syntax haben, sollten Sie eine Bestätigung wie die folgende erhalten:

Führen Sie als Nächstes den folgenden Befehl aus, um den Nginx-Dienst neu zu starten und Ihre Integration zwischen Nginx und PHP-FPM anzuwenden.
sudo systemctl restart nginxNachdem Nginx neu gestartet wurde, können Sie Ihre Integration über die PHPINFO-Datei überprüfen. Führen Sie den folgenden Befehl aus, um die PHPINFO-Datei ‘ info.php ‘ im Standard-Web-Stammverzeichnis ‘ /var/www/html/ ‘ zu erstellen.
echo "" > /var/www/html/info.phpBesuchen Sie schließlich in Ihrem Webbrowser http://192.168.5.30/info.php. Wenn Ihre Integration von Nginx und PHP-FPM erfolgreich ist, sollten Sie Folgendes erhalten:
Sie können unten sehen, dass PHP 8.3 mit der Server-API PHP-FPM unter dem Nginx-Webserver läuft.

Scrollen Sie nach unten auf der Seite, und Sie werden sehen, dass die PHP mysqli/mysqlnd-Erweiterung ebenfalls installiert ist.

Schließlich werden Sie auch sehen, dass das Caching über APC in Ihrer PHP-Installation aktiviert ist.

Erstellen eines Nginx-Serverblocks (virtueller Host)
Ein Serverblock ist nur ein anderer Name für einen ‘virtuellen Host’ für einen Nginx-Webserver. Er wird verwendet, um mehrere Websites oder Domainnamen auf einem einzigen Server zu hosten. In diesem Abschnitt lernen Sie, wie Sie einen Nginx-Serverblock erstellen.
Bevor Sie die Serverblockkonfiguration erstellen, führen Sie den folgenden Befehl aus, um ein neues Web-Stammverzeichnis ‘/var/www/newsite/public_html’ und eine benutzerdefinierte ‘index.html’-Seite zu erstellen.
mkdir -p /var/www/newsite/public_html
echo "Willkommen bei newsite.com" > /var/www/newsite/public_html/index.htmlFühren Sie nun den folgenden Befehl aus, um den Besitz des Verzeichnisses ‘ /var/www/newsite ‘ auf den Benutzer ‘ www-data ‘ zu ändern. Auf dem Ubuntu-System läuft der Nginx-Webserver als Benutzer ‘ www-data ‘.
sudo chown -R www-data:www-data /var/www/newsiteFühren Sie als Nächstes den folgenden Befehl des Nano-Editors aus, um eine neue Serverblockkonfiguration ‘/etc/nginx/sites-available/newsite’ zu erstellen.
sudo nano /etc/nginx/sites-available/newsiteFügen Sie die folgende Konfiguration ein, stellen Sie sicher, dass Sie die server_name-Option mit Ihrem Domainnamen und das Web-Stammverzeichnis auf den neuen Pfad wie ‘ /var/www/newsite/public_html ‘ ändern.
server {
listen 80;
server_name newsite.com;
root /var/www/newsite/public_html;
index index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location / {
try_files $uri $uri/ =404;
}
}Wenn Sie fertig sind, speichern Sie die Datei und beenden Sie sie.
Führen Sie nun den folgenden Befehl aus, um die Serverblockkonfiguration ‘ newsite ‘ zu aktivieren. Mit diesem Befehl erstellen Sie einen neuen symbolischen Link der Datei ‘ /etc/nginx/sites-available/newsite ‘ im Verzeichnis ‘ /etc/nginx/sites-enabled/ ‘.
sudo ln -s /etc/nginx/sites-available/newsite /etc/nginx/sites-enabled/Nachdem der Serverblock aktiviert wurde, führen Sie den ‘ nginx ‘ Befehl aus, um Ihre Nginx-Syntax zu überprüfen.
sudo nginx -tWenn kein Fehler auftritt, sollten Sie die Ausgabe ‘ … syntax is ok / … test is successful ‘ erhalten.
Führen Sie schließlich den folgenden Befehl aus, um den Nginx-Webserver neu zu starten und Ihre neue Serverblockkonfiguration anzuwenden. Damit sollte Ihre Serverblockkonfiguration von Ihrem lokalen Rechner aus zugänglich sein.
sudo systemctl restart nginx
Testen Ihrer Serverblockkonfiguration
Um sicherzustellen, dass Ihre Nginx-Serverblockkonfiguration erfolgreich ist, greifen Sie von Ihrem lokalen Computer auf den Domainnamen Ihrer Serverblockkonfiguration zu. Wenn Sie den öffentlichen Domainnamen verwenden, besuchen Sie den Domainnamen direkt. Für lokale Domainbenutzer bearbeiten Sie die ‘hosts’-Datei auf Ihrem lokalen Computer.
- Für Linux- und MacOS-Benutzer bearbeiten Sie die ‘ /etc/hosts ‘ Datei mit Root-/Administrationsrechten.
- Für Windows-Benutzer bearbeiten Sie die Datei ‘ C:\Windows\System32\drivers\etc\hosts ‘ als Administrator.
Fügen Sie Ihre Server-IP-Adresse und den Domainnamen wie folgt hinzu:
192.168.5.30 newsite.comSpeichern Sie die Datei und beenden Sie sie.
Öffnen Sie nun Ihren Webbrowser und besuchen Sie http://newsite.com/. Wenn Ihre Nginx-Serverblockkonfiguration erfolgreich ist, sollten Sie die benutzerdefinierte ‘index.html’-Seite erhalten, die Sie erstellt haben:

Fazit
Herzlichen Glückwunsch! Sie haben jetzt den LEMP-Stack (Linux, Nginx, MySQL/MariaDB und PHP) auf Ubuntu 24.04 “Noble Numbat” installiert. Sie haben auch die MariaDB-Serverinstallation gesichert und einen Nginx-Serverblock erstellt, um mehrere Websites zu hosten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.