Was ist der LEMP Stack?
Der LEMP‑Stack ist die populäre Alternative zum LAMP‑Stack, bei der Linux als Betriebssystem, Nginx als Webserver, MariaDB als relationale Datenbank und PHP‑FPM als PHP‑Verarbeitungs‑Engine zum Einsatz kommen. Durch die hohen Performance‑Werte von Nginx und die Flexibilität von PHP‑FPM eignet sich dieser Stack besonders für anspruchsvolle Web‑Anwendungen, Content‑Management‑Systeme wie WordPress und moderne API‑Umgebungen.
Warum ein LEMP Stack auf einem VPS?
Ein Virtual Private Server (VPS) bietet dir komplette Root‑Rechte, eigene Ressourcen und volle Kontrolle über Software‑Versionen – genau das, was du brauchst, um einen LEMP Stack eigenständig zusammenzustellen. Im Vergleich zu Shared‑Hosting‑Lösungen kannst du hier:
- Nginx individuell konfigurieren (HTTP/2, TLS‑Optimierung, Caching)
- MariaDB mit fein abgestimmtem Cache und Replikation einrichten
- PHP‑FPM mit mehreren Pool‑Konfigurationen für unterschiedliche Anwendungen bereitstellen
- Skalierbarkeit durch Docker‑Container oder Kubernetes‑ähnliche Lösungen erweitern
Voraussetzungen & Vorbereitung
Bevor du mit der Installation beginnst, kläre folgende Punkte:
- VPS‑Provider: Empfohlen werden Anbieter mit mindestens
2 GB RAM,1 vCPUund SSD‑Speicher. Unser Amazon‑Affiliate‑Auswahl bietet passende Server‑Modelle. - Linux‑Distribution: Ubuntu 24.04 LTS oder Debian 12 werden fournir gut unterstützt.
- Root‑Zugriff: Du benötigst SSH‑Zugang mit sudo‑Rechten.
- Domain (optional): Für ein HTTPS‑Zertifikat über Let’s Encrypt ist eine DNS‑Zeile empfehlenswert.
Schritt‑für‑Schritt‑Installation
1. System aktualisieren & Grundpakete installieren
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg2 ca-certificates lsb-release software-properties-common
2. Nginx installieren und konfigurieren
sudo apt install -y nginx
sudo systemctl enable nginx && sudo systemctl start nginx
Erstelle anschließend eine optimierte nginx.conf mit aktiviertem gzip, expires und http2 Modul. Beispiel‑Snippet:
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
gzip on;
gzip_types text/css application/javascript text/javascript;
gzip_comp_level 6;
# HTTP/2 aktivieren
http2 on;
}
3. MariaDB (kompatibel zu MySQL) installieren
sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable mariadb && sudo systemctl start mariadb
Führe die Sicherheitskonfiguration aus:
sudo mysql_secure_installation
# Setze root Passwort, entferne anonyme Benutzer, disallow remote root login, etc.
4. PHP‑FPM installieren
sudo apt install -y php-fpm php-mysql php-xml php-mbstring php-gd
sudo systemctl enable php8.2-fpm @ php8.2-fpm # passt zur jeweiligen PHP‑Version
Passe den Pool‑Editor /etc/php/8.2/fpm/pool.d/www.conf an, um pm = dynamic, pm.max_children = 15 und pm.start_servers = 3 zu setzen.
5. PHP‑Info‑Seite testen
# Erstelle Test‑Datei im Webroot
echo '<?php phpinfo(); ?>' | sudo tee /var/www/html/info.php
# Aufrufen: http://deine-domain.de/info.php
Stelle sicher, dass “Loaded Configuration File” auf deine /etc/php/8.2/fpm/php.ini zeigt und dass “OPcache” aktiviert ist.
6. FIrewall (UFW) konfigurieren
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full' # öffnet 80 & 443
sudo ufw enable
Performance‑Optimierungen
Ein gut konfigurierter LEMP Stack zeichnet sich durch schnelle Antwortzeiten aus. Empfohlene Optimierungen:
- Nginx‑Caching: Installiere
nginx‑cache‑kickstartoderfastcgi‑cache, um statische Inhalte zu cachen. - MariaDB‑Tuning: Passe
innodb_buffer_pool_sizeauf etwa50‑70 %des verfügbaren RAM an. - PHP‑OPcache: Aktivere OPcache in der
php.iniund setzeopcache.memory_consumption=128. - HTTP/2 & TLS: Nutze moderne Zertifikate (Let’s Encrypt) und deaktivere alte Protokolle.
Sicherheitshinweise
Sicherheit steht an erster Stelle. Einige bewährte Maßnahmen:
- Regelmäßige System‑ und Paket‑Updates mit
apt update && apt upgrade -y. - Fail2Ban einrichten, um Brute‑Force‑ attacks zu blockieren:
sudo apt install fail2ban. - SSH‑Zugang mit Schlüssel‑Authentifizierung absichern und Port 22 ggf. ändern.
- Automatisierte Backups deiner Datenbanken und Web‑Files mit
mysqldumpundrsync.
Alternative: Docker‑Kompose für schnelle Umgebung
Falls du keine manuelle Installation bevorzugst, kannst du den gesamten Stack in einer docker-compose.yml zusammenfassen:
version: '3.8'
services:
nginx:
image: nginx:alpine
ports: ['80:80', '443:443']
volumes: [./html:/usr/share/nginx/html, ./nginx.conf:/etc/nginx/nginx.conf]
depends_on: [php-fpm, db]
php-fpm:
image: php:8.2-fpm-alpine
volumes: [./html:/var/www/html]
db:
image: mariadb:10.11
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: lemp
volumes: [db_data:/var/lib/mysql]
volumes:
db_data:
Damit hast du in wenigen Minuten eine reproduzierbare Entwicklungsumgebung.
Monitoring & Logging
Zur Überwachung deiner Server‑Performance empfiehlt sich die Kombination aus Prometheus und Grafana. Alternativ kann Netdata Echtzeit‑Metriken bereitstellen.
Ein zentrales Log‑Management mit Grafana Loki (wie in unserem zugehörigen Artikel Grafana Loki Log‑Aggregation 2026) ermöglicht dir, Nginx‑Zugriffe, PHP‑Fehler und MariaDB‑Logs an einer Stelle zu analysieren.
Fazit
Der LEMP‑Stack auf einem VPS bietet dir maximale Flexibilität, hohe Performance und professionelle Sicherheitsfeatures. Mit den hier beschriebenen Schritten bist du bestens gerüstet, um deine eigenen Web‑Anwendungen sicher und skalierbar zu betreiben – egal, ob du WordPress, eigene PHP‑Frameworks oder API‑Dienste hostest.