Tutorials  /  Linux Basics

LEMP-Stack auf Rocky Linux 8 installieren: Anleitung

Ccentron Redaktion · Mai 2025 ·8 Min. Lesezeit ·Linux Basics, Tutorial

Der LEMP-Stack, bestehend aus Linux, Nginx (oft ausgesprochen als Engine X), MySQL und PHP, und ist eine Sammlung von Anwendungen, die auf einem Server installiert werden, um dynamische Webseiten bereitzustellen. In dieser Konfiguration übernimmt Nginx die Funktion des Webservers, MySQL dient als Datenbankserver, und PHP fungiert als dynamische Skriptsprache, die zahlreiche Web-Frameworks unterstützt. Diese Anleitung zeigt, wie du LEMP auf Rocky Linux 8 installieren kannst.

Voraussetzungen

  • Stelle einen neuen Rocky Linux 8 Server bereit
  • Melde dich als Benutzer mit sudo-Rechten an (kein Root-Account)
  • Führe ein vollständiges Update des Servers durch
  • Richte eine Domain ein und verknüpfe sie mit deinem Server
VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Schritt 1: Nginx installieren

Installiere zunächst den Nginx-Webserver.

Konsole
$ sudo dnf install nginx

Aktiviere Nginx, damit der Dienst beim Systemstart automatisch gestartet wird.

Konsole
$ sudo systemctl enable nginx

Starte anschließend den Nginx-Dienst manuell.

Konsole
$ sudo systemctl start nginx

Erlaube HTTP-Verkehr durch die Firewall.

Konsole
$ sudo firewall-cmd --zone=public --permanent --add-service=http

Lade die Firewall-Regeln neu, um die Änderungen zu übernehmen.

Konsole
$ sudo firewall-cmd --reload

Um die Funktionalität von Nginx zu überprüfen, öffne einen Browser und rufe die IP-Adresse deines Servers auf:

http://1.2.3.4

Schritt 2: MySQL/MariaDB installieren

Installiere nun den MariaDB-Datenbankserver.

Konsole
$ sudo dnf install mariadb-server

Aktiviere MariaDB, damit der Dienst beim Systemstart automatisch gestartet wird.

Konsole
$ sudo systemctl enable mariadb

Starte den MariaDB-Dienst.

Konsole
$ sudo systemctl start mariadb

Schritt 3: PHP installieren

Fahre fort, indem du PHP zusammen mit PHP-FPM (FastCGI Process Manager) installierst.

Konsole
$ sudo dnf install php php-fpm

Installiere die gängigen PHP-Erweiterungen, die von den meisten Webanwendungen benötigt werden.

Konsole
$ sudo dnf install php-mysqlnd php-cgi php-bcmath php-json php-xml php-gd php-zip php-intl php-mbstring

Aktiviere PHP-FPM, sodass der Dienst beim Systemstart automatisch ausgeführt wird.

Konsole
$ sudo systemctl enable php-fpm

Starte anschließend den PHP-FPM-Dienst.

Konsole
$ sudo systemctl start php-fpm

Schritt 4: MariaDB konfigurieren

Starte die Initialisierung von MariaDB und lege ein Root-Passwort fest.

Konsole
$ sudo mysql_secure_installation

Wenn du zur Eingabe eines Root-Passworts aufgefordert wirst, drücke die Eingabetaste. Bestätige anschließend mit y, um ein neues Root-Passwort zu setzen, anonyme Benutzer zu entfernen, Root-Logins aus der Ferne zu verbieten und die Testdatenbank zu löschen.

Melde dich als Root-Benutzer an der MySQL-Shell an.

Konsole
$ sudo mysql -u root -p

Lege innerhalb der Konsole eine Testdatenbank an.

Code
CREATE DATABASE sampledb;

Erstelle einen neuen Datenbankbenutzer und weise ihm ein starkes Passwort zu.

Code
CREATE USER 'example-user'@'localhost' IDENTIFIED BY 'ultra-strong-password';

Erteile dem neuen Benutzer vollständige Rechte für die Testdatenbank.

Code
GRANT ALL PRIVILEGES ON sampledb.* TO 'example-user'@'localhost';

Aktualisiere die Berechtigungen, damit die Änderungen wirksam werden.

Code
FLUSH PRIVILEGES;

Beende die MySQL-Konsole.

Code
EXIT

Teste nun die Anmeldung mit dem neu erstellten Datenbankbenutzer.

Code
mysql -u example-user -p

Zeige die verfügbaren Datenbanken an.

Code
SHOW DATABASES;

Beende die Konsole erneut.

Code
EXIT

Schritt 5: Nginx konfigurieren

Lege ein eigenes Verzeichnis an, um die Dateien deiner Webanwendung zu speichern.

Konsole
$ sudo mkdir /usr/share/nginx/example.com

Verwende einen Texteditor, um eine einfache HTML-Datei in diesem Verzeichnis zu erstellen.

Konsole
$ sudo nano /usr/share/nginx/example.com/index.html

Füge den folgenden Inhalt in die HTML-Datei ein:

Hello World!! Your WebServer Works!

Speichere deine Änderungen und schließe den Editor.

Ändere den Besitzer des neuen Verzeichnisses auf den Nginx-Benutzer und die Nginx-Gruppe.

Konsole
$ sudo chown -R nginx.nginx /usr/share/nginx/example.com

Erstelle eine neue Nginx-Konfigurationsdatei für deine Domain.

Konsole
$ sudo nano /etc/nginx/conf.d/example.com.conf

Füge die folgenden Konfigurationseinstellungen in die Datei ein:

Code
server {
    listen 80;
    listen [::]:80;
    server_name _;
    root /usr/share/nginx/example.com;
    index index.php index.html index.htm;
    error_log /var/log/nginx/example.com.error;
    access_log /var/log/nginx/example.com.access;
    
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    
    location ~ /\. {
        deny all;
        access_log off;
    }
}

Speichere die Datei und schließe den Editor.

Überprüfe die Nginx-Konfiguration auf Syntaxfehler.

Konsole
$ sudo nginx -t

Starte abschließend Nginx neu, um die neuen Einstellungen zu übernehmen.

Konsole
$ sudo systemctl restart nginx

Schritt 6: Serversicherheit verbessern

Nginx verwendet die Ports HTTP und HTTPS, um Webanwendungen bereitzustellen. Diese Ports müssen in der Firewall freigegeben werden.

Erlaube HTTP-Verbindungen über die Firewall.

Konsole
$ sudo firewall-cmd --zone=public --permanent --add-service=http

Erlaube ebenfalls HTTPS-Verbindungen über die Firewall.

Konsole
$ sudo firewall-cmd --zone=public --permanent --add-service=http

Aktualisiere die Firewall, um die Änderungen zu übernehmen.

Konsole
$ sudo firewall-cmd --reload

Schritt 7: SSL-Zertifikate konfigurieren

Installiere das Extra Packages for Enterprise Linux (EPEL) Repository, um die Einrichtung von SSL-Zertifikaten vorzubereiten.

Konsole
$ sudo dnf install epel-release

Aktiviere das PowerTools-Repository.

Konsole
$ sudo dnf config-manager --set-enabled powertools

Installiere den Snap-Paketmanager.

Konsole
$ sudo dnf install snapd -y

Aktiviere den Snap-Socket-Dienst und erstelle einen symbolischen Link, um die klassische Snap-Unterstützung bereitzustellen.

Konsole
$ sudo systemctl enable --now snapd.socket && sudo ln -s /var/lib/snapd/snap /snap

Trenne die SSH-Verbindung und verbinde dich erneut, um die Snap-Integration abzuschließen.

Installiere anschließend das Certbot-Tool, um SSL-Zertifikate zu verwalten.

Konsole
$ sudo snap install --classic certbot

Fordere ein kostenloses SSL-Zertifikat für deine Domain mit Certbot an.

Konsole
$ sudo certbot --nginx -d example.com

Ersetze dabei example.com durch deinen tatsächlichen Domainnamen.

Starte den Nginx-Dienst neu, um die SSL-Konfiguration zu aktivieren.

Konsole
$ sudo systemctl restart nginx

Schritt 8: Installation testen

Öffne einen Webbrowser und rufe deine konfigurierte Domain auf, um sicherzustellen, dass die Website korrekt geladen wird.

https://example.com

Deine einfache HTML-Anwendung sollte die Nachricht "Hello World" anzeigen.

Um die Verbindung zur Datenbank zu überprüfen, erstelle eine neue Datei namens dbtest.php im Stammverzeichnis deines Webservers.

Konsole
$ sudo nano /usr/share/nginx/example.com/dbtest.php

Füge den folgenden PHP-Code in die Datei ein und ersetze die Datenbankinformationen entsprechend deinen vorherigen Einstellungen:

PHP
<?php
$server = "localhost";
$user = "example-user";
$password = "ultra-strong-password";
$connect = new mysqli($server, $user, $password);

if ($connect->connect_error) {
    die("<h2>Verbindung fehlgeschlagen: </h2>" . $connect->connect_error);
}

echo "<h2>Datenbankverbindung erfolgreich</h2>";
echo "<h2><br>Server PHP-Informationen</h2><br>";
phpinfo();
?>

Speichere die Änderungen und schließe den Editor.

Rufe anschließend die folgende URL in deinem Browser auf, um die Verbindung zu testen:

https://example.com/dbtest.php

Wenn alles korrekt eingerichtet ist, sieht man eine Erfolgsnachricht, zusammen mit den PHP-Serverinformationen.

Fazit

Herzlichen Glückwunsch! Du hast erfolgreich den LEMP-Stack auf deinem Rocky Linux 8 Server installiert und die Kommunikation zwischen allen wichtigen Komponenten getestet. Ab jetzt kannst du sichere und funktionale Webanwendungen auf deinem Server bereitstellen.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren