Was sind LAMP- und LEMP-Stacks?
LAMP und LEMP benennen die vier Softwarebausteine, die eine typische Website ausliefern: Linux, einen Webserver, eine Datenbank und PHP. Das A in LAMP steht für Apache, das E in LEMP für Nginx (es wird „engine-x“ ausgesprochen, daher das E). In beiden Stacks ist die Datenbank MySQL oder MariaDB und die Programmiersprache PHP.
PHP-Anwendungen wie WordPress, WooCommerce und Joomla laufen auf diesem Stack. WordPress.org empfiehlt als Webserver Apache oder Nginx, beide sind also eine solide Grundlage. Welchen Sie wählen, entscheidet nicht darüber, ob Ihre Anwendung funktioniert. Es ändert, wie Sie die Einstellungen schreiben.
Wie funktioniert der Stack?
| Schicht | LAMP | LEMP | Rolle |
|---|---|---|---|
| Betriebssystem | Linux | Linux | Die Basis, auf der alles läuft |
| Webserver | Apache | Nginx | Beantwortet Anfragen von Browsern |
| Datenbank | MySQL oder MariaDB | MySQL oder MariaDB | Speichert Beiträge, Benutzer und Bestellungen |
| Sprache | PHP | PHP, über PHP-FPM | Baut die Seite |
Eine Anfrage wandert so durch den Stack:
- Der Browser sendet eine Anfrage an Ihre Domain. Sie erreicht Port 80 oder 443 Ihres Servers.
- Der Webserver nimmt die Anfrage entgegen. Betrifft sie ein Bild oder eine CSS-Datei, liefert er die Datei selbst aus.
- Betrifft die Anfrage eine PHP-Datei, übergibt der Webserver sie an PHP, und PHP führt den Code aus.
- PHP fragt bei Bedarf die Datenbank ab und baut die Seite. Der Webserver schickt die Seite an den Browser zurück.
Öffnet sich eine Seite nicht, prüfen Sie die Schichten der Reihe nach: systemctl status nginx, systemctl status phpX.Y-fpm und systemctl status mariadb. X.Y steht für Ihre PHP-Version (8.3 unter Ubuntu 24.04), und bei LAMP nutzen Sie apache2 statt nginx. Wo etwas nicht läuft, beginnt das Problem.
Was ist der Unterschied zwischen LAMP und LEMP?
- Apache liest
.htaccess-Dateien, Nginx nicht. Bei Nginx kommen Regeln in die Serverkonfiguration. - Nginx führt PHP nicht in sich selbst aus. Es reicht Anfragen an einen eigenen Dienst namens PHP-FPM weiter. Apache kann PHP in sich selbst oder über PHP-FPM ausführen.
- Die Konfigurationsordner unterscheiden sich. Unter Ubuntu nutzt Apache
/etc/apache2und Nginx/etc/nginx. - Der Speicherverbrauch hängt stärker von der Zahl der PHP-FPM-Worker und den Datenbankeinstellungen ab als von der Wahl des Webservers.
- Keiner ist eindeutig überlegen. Beide sind weit verbreitet, also entscheiden die Anleitung, der Sie folgen, und Ihre Gewohnheiten.
MySQL oder MariaDB?
MariaDB ist eine Open-Source-Datenbank, die sich von MySQL abgespalten hat, und ihre Befehle und Clients sind weitgehend kompatibel. Die offizielle Anforderungsseite von WordPress akzeptiert beide, prüfen Sie dort die aktuellen Mindestversionen. Unter Ubuntu installiert sich das Paket mariadb-server mit einem Befehl. Laut der MariaDB-Dokumentation nutzt das root-Konto seit Version 10.4 standardmäßig die Authentifizierung per unix_socket. Führen Sie auf dem Server einfach sudo mariadb aus. Ein Root-Passwort ist nicht nötig.
LEMP unter Ubuntu einrichten
Diese Schritte gelten für Ubuntu und Debian. Verbinden Sie sich zuerst per SSH mit dem Server. Die Beispiele nutzen example.com als Domainnamen, ersetzen Sie ihn also durch Ihren eigenen.
- Aktualisieren Sie die Paketliste:
sudo apt update - Installieren Sie die Pakete:
sudo apt install nginx mariadb-server php-fpm php-mysql. Installiert werden die Versionen aus dem Paket-Repository. - Härten Sie die Datenbank:
sudo mariadb-secure-installation. Antworten Sie mit Ja auf das Entfernen anonymer Benutzer, das Entfernen der Testdatenbank und das Verbieten des Remote-Root-Logins. - Legen Sie den Ordner der Website an:
sudo mkdir -p /var/www/example - Öffnen Sie eine Datei mit
sudo nano /etc/nginx/sites-available/exampleund fügen Sie diese Zeile ein:server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } } ls /run/php/zeigt den echten Namen des Sockets. Schreiben Sie diesen anstelle vonphpX.Y-fpm.sock.- Aktivieren Sie die Website:
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/ - Testen und übernehmen Sie die Konfiguration:
sudo nginx -tund danachsudo systemctl reload nginx - Wenn Sie ufw nutzen, öffnen Sie die Ports 80 und 443:
sudo ufw allow 80/tcpundsudo ufw allow 443/tcp. Achten Sie darauf, dass der SSH-Port (22) offen ist.
Um zu testen, ob PHP funktioniert, schreiben Sie eine Testdatei:
echo '<?php phpinfo();' | sudo tee /var/www/example/info.php
Zeigt die Domain noch nicht auf den Server, testen Sie von innerhalb des Servers mit curl -H 'Host: example.com' http://127.0.0.1/info.php. Sobald Sie sehen, dass es funktioniert, löschen Sie die Datei: sudo rm /var/www/example/info.php. Diese Seite zeigt allen die Details Ihres Servers.
Eine Datenbank für Ihre Anwendung
Öffnen Sie die Datenbank-Shell mit sudo mariadb und legen Sie für jede Anwendung eine eigene Datenbank und einen eigenen Benutzer an. Wählen Sie das starke Passwort selbst:
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';
Diese drei Werte (Datenbank, Benutzer, Passwort) tragen Sie auf dem Einrichtungsbildschirm von WordPress ein. Damit die Permalinks von WordPress funktionieren, ersetzen Sie in der Nginx-Zeile =404 durch /index.php?$args.
Was ändert sich bei LAMP?
Für den Apache-Stack installieren Sie die Pakete so:
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Sie definieren die Website unter /etc/apache2/sites-available und schalten sie mit sudo a2ensite example ein. Für Permalinks führen Sie sudo a2enmod rewrite aus und starten Apache mit sudo systemctl restart apache2 neu. Damit .htaccess-Dateien wirken, müssen Sie für den Ordner der Website AllowOverride All setzen. Sie können Apache auch mit PHP-FPM betreiben, was zum ereignisgesteuerten Modell event passt. Die Datenbankschritte sind dieselben wie bei LEMP.
Nach der Installation
- Fügen Sie ein HTTPS-Zertifikat hinzu. Let's Encrypt ist kostenlos, und Certbot funktioniert mit Nginx und Apache.
- Legen Sie den Eigentümer der Ordner fest, in die der Webserver schreiben muss. Unter Ubuntu und Debian läuft der Webserver als Benutzer
www-data:sudo chown -R www-data:www-data /var/www/example. - Installieren Sie regelmäßig Updates mit
sudo apt update && sudo apt upgrade. Nach der Installation liegen Updates für Betriebssystem und Software in Ihrer Verantwortung. - Sichern Sie die Datenbank getrennt mit
mariadb-dump. Die tägliche Sicherung des Servers ist im Preis enthalten, dennoch sollten Sie von wichtigen Daten selbst eine zusätzliche Kopie aufbewahren.
Wenn Sie den Stack fertig nutzen möchten, bestellen Sie mit der Option LAMP oder LEMP von Seturack, und er installiert sich selbst. Brauchen Sie nur WordPress, genügt die Option WordPress-VPS: Die Einrichtung dauert etwa 4-5 Minuten, und Adresse und Passwort erscheinen im Panel.
Kommentare0
Noch keine Kommentare
Schreiben Sie den ersten Kommentar und teilen Sie Ihre Gedanken.
Bitte melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen.