LEMP Stack auf VPS einrichten 2026 – Anleitung & Setup

Was ist der LEMP Stack? – Einführung und Überblick

Der LEMP Stack ist eine bewährte Kombination aus vier Open-Source-Technologien, die zusammen eine leistungsstarke Webserver-Umgebung bilden. Das Akronym steht für Linux als Betriebssystem, Nginx (ausgesprochen "Engine-X") als Webserver, MySQL oder MariaDB als Datenbanksystem und PHP als serverseitige Skriptsprache. Diese Kombination bildet das Rückgrat unzähliger Webanwendungen, von WordPress und Magento bis hin zu individuellen Laravel- und Symfony-Projekten.

Im Vergleich zum klassischen LAMP-Stack (mit Apache) bietet LEMP eine deutlich höhere Performance bei der Auslieferung statischer Inhalte und eine bessere Skalierbarkeit unter Last. Nginx arbeitet mit einem ereignisgesteuerten (event-driven) Architekturmodell, das tausende gleichzeitige Verbindungen mit minimalem Ressourcenverbrauch verarbeiten kann. Gerade auf kleinen VPS-Instanzen mit 1–4 GB RAM ist dies ein entscheidender Vorteil.

Im Jahr 2026 hat sich der LEMP-Stack als Quasi-Standard für hochperformante Webhosting-Lösungen etabliert. Die aktuellen Versionen – PHP 8.4, MariaDB 11.x, Nginx 1.26+ und Linux-Distributionen wie Ubuntu 24.04 LTS oder Debian 12 – bilden eine moderne, zukunftssichere Grundlage. Diese Anleitung führt dich Schritt für Schritt durch die komplette Einrichtung, von der Servervorbereitung bis zum produktiven Betrieb mit SSL-Verschlüsselung und Performance-Tuning.

Die nachfolgende Tabelle zeigt die Hauptkomponenten des LEMP-Stacks und ihre jeweilige Aufgabe:

Komponente Software Hauptaufgabe Aktuelle Version 2026
L – Linux Ubuntu / Debian Betriebssystem und Basis Ubuntu 24.04 LTS, Debian 12
E – Engine-X Nginx Webserver & Reverse Proxy 1.26.x (stable)
M – MySQL/MariaDB MariaDB Datenbankmanagementsystem 11.4 LTS
P – PHP PHP-FPM Skript-Engine für dynamische Inhalte 8.4 (oder 8.3 LTS)

Voraussetzungen für die LEMP-Installation auf einem VPS

Bevor du mit der Installation des LEMP-Stacks beginnst, solltest du sicherstellen, dass dein VPS die technischen Mindestanforderungen erfüllt. Für eine produktive Umgebung empfehlen wir mindestens 2 CPU-Kerne, 2 GB RAM und 20 GB SSD-Speicher. Für stark frequentierte Webseiten oder E-Commerce-Plattformen sind 4 CPU-Kerne und 4–8 GB RAM ratsam. Die meisten Anbieter wie Hetzner, Netcup, IONOS oder DigitalOcean bieten entsprechende Tarife bereits ab 4–8 Euro pro Monat an.

Du benötigst zudem einen SSH-Zugang mit Root- oder Sudo-Rechten. Moderne VPS-Instanzen werden in der Regel mit einem Cloud-Init-Setup ausgeliefert, bei dem du dich direkt als root oder einen vom Provider definierten Benutzer (z. B. ubuntu oder debian) per SSH anmelden kannst. Achte darauf, dass dein DNS-Eintrag (A-Record) für die Domain bereits auf die IP-Adresse deines VPS zeigt, damit später Let's Encrypt korrekt funktioniert.

Folgende Tools sollten auf deinem lokalen Rechner vorhanden sein, um die Installation durchzuführen:

  • SSH-Client (OpenSSH auf Linux/macOS, Windows Terminal oder PuTTY auf Windows)
  • Ein Texteditor (nano, vim oder VS Code mit Remote-SSH-Plugin)
  • Optional: ein SFTP-Client wie FileZilla für Dateiübertragungen

Die nachstehende Tabelle gibt einen Überblick über empfohlene Mindestkonfigurationen je nach Einsatzzweck:

Einsatz CPU RAM Speicher Traffic
Kleine Website / Blog 1–2 Kerne 1–2 GB 20 GB SSD 1–2 TB
Mittlere Webanwendung 2–4 Kerne 4 GB 40 GB SSD 4 TB
Shop / Enterprise 4+ Kerne 8+ GB 80+ GB NVMe Unlimitiert
Entwicklungsumgebung 1 Kern 1 GB 10 GB SSD 500 GB

VPS-Server vorbereiten und absichern

Der erste Schritt nach dem Login auf einem neuen VPS ist die Aktualisierung des Systems und das Einspielen aller Sicherheitspatches. Ein frisch aufgesetzter Server sollte nie ohne vorheriges Update produktiv betrieben werden, da bekannte Schwachstellen in veralteten Paketen ein Einfallstor für Angreifer darstellen. Verbinde dich zunächst per SSH mit deinem Server und führe das Update aus.

Für Ubuntu 24.04 LTS:

sudo apt update && sudo apt upgrade -y
sudo apt install -y software-properties-common curl wget git ufw

Für Debian 12:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git ufw ca-certificates apt-transport-https lsb-release

Nach dem Update empfehlen wir, einen neuen Benutzer mit eingeschränkten Rechten anzulegen und den direkten Root-Login per SSH zu deaktivieren. Dies ist eine der wichtigsten Sicherheitsmaßnahmen, da Brute-Force-Angriffe auf den Root-Account zu den häufigsten Angriffsszenarien gehören. Erstelle einen neuen Benutzer und konfiguriere den SSH-Zugang sicher.

sudo adduser deploy
sudo usermod -aG sudo deploy
sudo mkdir -p /home/deploy/.ssh
sudo cp ~/.ssh/authorized_keys /home/deploy/.ssh/
sudo chown -R deploy:deploy /home/deploy/.ssh
sudo chmod 700 /home/deploy/.ssh
sudo chmod 600 /home/deploy/.ssh/authorized_keys

Im nächsten Schritt wird die SSH-Konfiguration gehärtet. Öffne die Datei /etc/ssh/sshd_config und passe folgende Parameter an:

Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2

Starte den SSH-Dienst neu, damit die Änderungen wirksam werden. Wichtig: Lasse die alte SSH-Session offen, bis du die neue Konfiguration getestet hast, sonst sperrst du dich möglicherweise aus.

sudo systemctl restart sshd
sudo systemctl status sshd
Sicherheitsmaßnahme Status Empfehlung 2026
Root-Login per SSH Pflicht Deaktivieren
Passwort-Authentifizierung Pflicht Nur SSH-Keys
SSH-Port 22 (Standard) Auf >1024 ändern
Fail2Ban Optional Dringend empfohlen
Automatische Updates Optional Aktivieren

Nginx Webserver installieren und konfigurieren

Nginx (Engine-X) ist das Herzstück des LEMP-Stacks und dient als Webserver, Reverse Proxy und Lastverteiler. Im Vergleich zu Apache verarbeitet Nginx Anfragen asynchron und deutlich ressourcenschonender, was ihn zur ersten Wahl für hochfrequentierte Webseiten macht. Die Installation erfolgt aus den offiziellen Repositories, um stets die aktuelle stabile Version zu erhalten.

Installiere Nginx auf Ubuntu oder Debian mit folgendem Befehl:

sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx

Nach der Installation lauscht Nginx standardmäßig auf Port 80 und liefert die Default-Website unter /var/www/html aus. Überprüfe die Installation, indem du die IP-Adresse deines Servers im Browser aufrufst – du solltest die Standard-Nginx-Willkommensseite sehen. Falls die Seite nicht lädt, prüfe mit sudo ufw status, ob die Firewall den Port 80 blockiert.

Die Hauptkonfigurationsdatei von Nginx befindet sich unter /etc/nginx/nginx.conf. Für die meisten Anwendungsfälle empfehlen wir, eine modulare Struktur zu verwenden, bei der einzelne Webseiten als separate "Server Blocks" (vHosts) in /etc/nginx/sites-available/ definiert und über symbolische Links in /etc/nginx/sites-enabled/ aktiviert werden. Diese Struktur erleichtert die Verwaltung mehrerer Domains erheblich.

Eine optimierte Basiskonfiguration der nginx.conf für 2026 könnte wie folgt aussehen:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log warn;

events {
    worker_connections 2048;
    multi_accept on;
    use epoll;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    server_tokens off;
    client_max_body_size 64M;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';
    access_log /var/log/nginx/access.log main;

    gzip on;
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types text/plain text/css text/xml application/json application/javascript application/xml+rss application/atom+xml image/svg+xml;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Teste die Konfiguration mit sudo nginx -t, bevor du Nginx neu startest. Dies ist essenziell, da Syntaxfehler den Server stoppen können.

MySQL/MariaDB installieren und einrichten

Als Datenbanksystem kommt im LEMP-Stack typischerweise MariaDB zum Einsatz – ein vollständig Open-Source-Drop-in-Ersatz für MySQL, der von der Community weiterentwickelt wird. MariaDB bietet eine bessere Performance, zusätzliche Storage-Engines und eine aktivere Release-Politik als das kommerzielle MySQL von Oracle. Für die meisten Anwendungen ist MariaDB die empfohlene Wahl.

Installation auf Ubuntu 24.04 oder Debian 12:

sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb

Direkt nach der Installation solltest du das mitgelieferte Sicherheitsskript ausführen, um Standardrisiken zu eliminieren. Das Skript entfernt anonyme Benutzer, deaktiviert den Remote-Root-Login und entfernt die Test-Datenbank:

sudo mysql_secure_installation

Beantworte die interaktiven Fragen wie folgt:

  • Set root password: Ja (wähle ein sicheres Passwort, mind. 16 Zeichen)
  • Remove anonymous users: Ja
  • Disallow root login remotely: Ja
  • Remove test database: Ja
  • Reload privilege tables: Ja

Anschließend erstellst du eine dedizierte Datenbank und einen Benutzer für deine Webanwendung. Aus Sicherheitsgründen

Docker Compose auf dem VPS: Webserver, Datenbank & Reverse Proxy richtig betreiben
DevOps 02. June 2026 10 Min

Docker Compose auf dem VPS: Webserver, Datenbank & Reverse Proxy richtig betreiben

Praxisnaher Guide für Docker Compose auf dem VPS: Webserver, Datenbank, Reverse Proxy, TLS, Backups, Updates und Sicherheit richtig planen und betreiben.