Anmelden
Anmelden

So installieren und konfigurieren Sie SSH auf Ubuntu 22.04

So installieren und konfigurieren Sie SSH auf Ubuntu 22.04
Hostman Team
Technischer Redakteur
Ubuntu-System SSH-Protokoll
26.06.2025
Reading time: 7 min

SSH ist ein Netzwerkprotokoll, das eine sichere Verbindung zwischen einem Client und einem Server herstellt. Die gesamte Kommunikation wird verschlüsselt, wodurch Datendiebstahl und andere Netzwerkangriffe verhindert werden.

Angenommen, Sie haben einen Cloud-Server bei Hostman bestellt. Dann benötigen Sie SSH, um sich mit dem Server zu verbinden und diesen zu verwalten.

Die folgende Anleitung beschreibt, wie Sie SSH auf Ubuntu 22.04 installieren und konfigurieren.

Voraussetzungen

Bevor Sie mit der Installation und Konfiguration des Secure Shell Dienstes beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Kenntnisse der Linux-Kommandozeile für die Konfiguration

Sie sollten grundlegende Linux-Befehle wie sudo, apt, nano und systemctl beherrschen. Diese Befehle werden während des Installations- und Konfigurationsprozesses häufig verwendet. Ein sicherer Umgang mit der Kommandozeile ist entscheidend für eine effektive Verwaltung des Dienstes.

  • Root- oder sudo-Zugriff für das Setup

Administrative (root) Berechtigungen sind erforderlich, um den Server zu installieren und zu konfigurieren. Benutzer müssen entweder sudo-Zugriff haben oder als root angemeldet sein. Ohne diese Berechtigungen kann die Einrichtung nicht fortgesetzt werden.

  • Internetverbindung für den Paketdownload

Eine stabile Internetverbindung ist notwendig, um den OpenSSH-Server und weitere zugehörige Pakete zu installieren. Ohne eine funktionierende Verbindung kann das System die erforderlichen Softwarekomponenten nicht abrufen.

  • Firewall-Konfiguration für den Zugriff

Falls auf dem System eine Firewall wie UFW aktiviert ist, könnte diese standardmäßig den Fernzugriff blockieren. Es ist essenziell, die Firewall so zu konfigurieren, dass eingehende Verbindungen erlaubt sind. Nutzen Sie UFW oder ein anderes Firewall-Tool, um sicherzustellen, dass Port 22 geöffnet und erreichbar ist.

  • Zugriff auf das System (Lokal oder Remote)

Sie benötigen physischen Zugriff auf ihre Maschine, um den Dienst lokal einzurichten, oder das System muss über ihre IP-Adresse remote erreichbar sein. Stellen Sie sicher, dass das System korrekt mit dem Netzwerk verbunden ist.

Vergessen Sie nicht, dass Sie Ihren Cloud-Server schnell und günstig über unser VPS Server Hosting bereitstellen können.

Schritt 1: Ubuntu Vorbereiten

Aktualisieren Sie zunächst alle apt-Pakete auf die neuesten Versionen. Verwenden Sie dafür den folgenden Befehl:

sudo apt update && sudo apt upgrade

Schritt 2: SSH auf Ubuntu Installieren

OpenSSH ist standardmäßig nicht installiert. Installieren Sie es manuell über das Terminal:

sudo apt install openssh-server

Die Installation aller notwendigen Komponenten beginnt. Antworten Sie auf alle Systemfragen mit „Yes“.

Nachdem die Installation abgeschlossen ist, gehen Sie zum nächsten Schritt über.

Schritt 3: SSH Starten

Aktivieren Sie nun den soeben installierten Dienst mit folgendem Befehl:

sudo systemctl enable --now ssh

Nach erfolgreichem Start erscheint eine Systemmeldung.

Der Parameter --now startet den Dienst sofort und stellt ihn auf Autostart beim Systemstart ein.

Prüfen Sie, ob der Dienst erfolgreich läuft:

sudo systemctl status ssh

In der Ausgabe sollte die Zeile Active: active (running) erscheinen.

Um den Dienst zu deaktivieren, verwenden Sie:

sudo systemctl disable ssh

Dadurch wird der Dienst deaktiviert und startet beim Booten nicht mehr automatisch.

Schritt 4: Firewall Konfigurieren

Bevor Sie sich per SSH mit dem Server verbinden, prüfen Sie die Firewall-Einstellungen.

Wir verwenden hier UFW. Nutzen Sie:

sudo ufw status

In der Ausgabe sollte SSH erlaubt sein. Falls nicht, erlauben Sie SSH mit:

sudo ufw allow ssh

Schritt 5: Verbindung zum Server Herstellen

Nachdem Sie alle vorherigen Schritte durchgeführt haben, können Sie sich nun per SSH anmelden.

Sie benötigen die IP-Adresse oder den Domainnamen des Servers sowie den Namen eines dort angelegten Benutzers.

Im Terminal geben Sie ein:

ssh benutzername@IP_adress

Oder: 

ssh username@domain

Wichtig: SSH muss auf dem Remote-Server und dem lokalen Rechner installiert und konfiguriert sein.

Schritt 6 (Optional): Schlüsselpaar für Sichere Authentifizierung Erstellen

Für erhöhte Sicherheit können Sie anstelle der Passwort-Authentifizierung ein Schlüsselpaar verwenden. Erstellen Sie eines mit:

ssh-keygen

Schritt 7: SSH Konfigurieren

Nachdem Sie die vorherigen fünf Schritte abgeschlossen haben, können Sie sich bereits remote mit dem Server verbinden. Sie können jedoch die Sicherheit der Verbindung weiter erhöhen, indem Sie den standardmäßigen Verbindungsport ändern oder von der Passwort-Authentifizierung zur Schlüssel-Authentifizierung wechseln. Diese und weitere Änderungen erfordern das Bearbeiten der SSH-Konfigurationsdatei.

Die wichtigsten Einstellungen des OpenSSH-Servers befinden sich in der Hauptkonfigurationsdatei sshd_config (Pfad: /etc/ssh). Bevor Sie mit dem Bearbeiten beginnen, sollten Sie eine Sicherungskopie dieser Datei erstellen:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.initial

Wenn beim Bearbeiten Fehler auftreten, können Sie die ursprüngliche Datei problemlos wiederherstellen.

Nach der Erstellung des Backups können Sie mit dem Bearbeiten der Konfigurationsdatei fortfahren. Öffnen Sie diese mit dem Editor Nano:

sudo nano /etc/ssh/sshd_config

Ändern Sie in der Datei den Port zu einem sichereren. Am besten setzen Sie Werte aus dem dynamischen Port-Bereich (49152–65535) ein und verwenden zur zusätzlichen Sicherheit unterschiedliche Zahlen. Ändern Sie zum Beispiel den Port auf 49532. Entfernen Sie hierfür das Kommentarzeichen (#) vor der entsprechenden Zeile und ändern Sie den Port-Wert entsprechend, wie im Screenshot unten gezeigt.

4fd580df 7710 49f3 Ba88 5f79663f289e

Zusätzlich zu dieser Einstellung empfehlen wir, die Passwort-Authentifizierung auf die sicherere Schlüssel-Authentifizierung umzustellen. Entfernen Sie dazu das Kommentarzeichen (#) vor der entsprechenden Zeile und stellen Sie sicher, dass der Wert auf „Yes“ gesetzt ist, wie im Screenshot gezeigt.

B78f6db1 010f 48a7 A5ff Ce4e6f665691

Als Nächstes verbieten Sie die Anmeldung als Superuser (Root-Benutzer) auf dem Server, indem Sie die entsprechende Zeile wie im Screenshot unten gezeigt ändern.

B06df4a0 5d22 4c7a Ba90 47fabd8d0bf5

Es gibt weitere Einstellungen, mit denen Sie die Serversicherheit erhöhen können:

  • UseDNS überprüft, ob der Hostname mit seiner IP-Adresse übereinstimmt. Der Wert „Yes“ aktiviert diesen Parameter.

  • PermitEmptyPasswords verbietet die Verwendung leerer Passwörter, wenn der Wert „No“ ist.

  • MaxAuthTries beschränkt die Anzahl der erfolglosen Verbindungsversuche innerhalb einer Sitzung.

  • AllowUsers und AllowGroups steuern die Liste der Benutzer und Gruppen, die Zugriff auf den Server haben dürfen:

# AllowUsers Benutzer1 Benutzer2 Benutzer3
# AllowGroups Gruppe1 Gruppe2 Gruppe3
  • LoginGraceTime definiert die erlaubte Zeitspanne für eine erfolgreiche Anmeldung. Wir empfehlen, diesen Wert auf ein Viertel des Standardwertes zu reduzieren.

  • ClientAliveInterval begrenzt die Dauer der Benutzerinaktivität. Wird das Limit überschritten, wird der Benutzer getrennt.

Nachdem Sie alle Änderungen in der Hauptkonfigurationsdatei vorgenommen haben, speichern Sie diese und schließen Sie den Editor.

Starten Sie den SSH-Dienst neu, damit die Änderungen wirksam werden:

sudo systemctl restart ssh

Wenn Sie den Port in der Konfigurationsdatei geändert haben, müssen Sie sich wie folgt verbinden:

ssh -p portnummer benutzername@IP_adresse

Oder:

ssh -p portnummer benutzername@domain

Fehlerbehebung bei Verbindungsproblemen

  • Stellen Sie sicher, dass der Dienst läuft:
sudo systemctl status ssh
  • Starten Sie den Dienst ggf. neu:
sudo systemctl restart ssh
  • Stellen Sie sicher, dass die Firewall Port 22 erlaubt:
sudo ufw allow 22
  • Prüfen Sie die Erreichbarkeit:
ping <server-ip-adresse>

Dienst Deaktivieren

Falls Sie den Remote-Zugriff deaktivieren möchten, führen Sie diese Schritte aus:

  1. Dienst temporär stoppen:

sudo systemctl stop ssh
  1. Automatischen Start verhindern:

sudo systemctl disable ssh
  1. Bestätigen, dass der Dienst inaktiv ist:

sudo systemctl status ssh
  1. SSH-Server deinstallieren:

sudo apt remove openssh-server

Fazit

Dieser Artikel zeigt Schritt für Schritt, wie Sie SSH unter Ubuntu 22.04 installieren, konfigurieren und sicherer machen. Wir hoffen, diese Anleitung hilft Ihnen, eine sichere Remote-Verbindung zu Ihrem Ubuntu-Server einzurichten.

Weitere Informationen zu SSH-Schlüsseln finden Sie hier.

Ubuntu-System SSH-Protokoll
26.06.2025
Reading time: 7 min

Ähnlich

Ubuntu-System

Einrichten eines BIND-DNS-Servers

DNS (Domain Name System) ist ein System, in dem alle Domainnamen von Servern in einer bestimmten Hierarchie organisiert sind. Warum brauchen wir es? Stellen Sie sich vor, Sie müssten eine Verbindung zu einem Gerät mit der IP-Adresse 91.206.179.207 herstellen. Sie könnten diese Adresse zwar in der Kommandozeile eingeben, aber sich viele solcher Zahlenkombinationen zu merken, ist sehr schwierig. Deshalb wurden spezielle Server geschaffen, die Domainnamen in IP-Adressen umwandeln. Wenn Sie zum Beispiel hostman.com in die Suchleiste Ihres Browsers eingeben, werden die Anfragedaten an einen DNS-Server gesendet. Dieser sucht in seiner Datenbank nach Übereinstimmungen und sendet anschließend die entsprechende IP-Adresse an Ihr Gerät. Erst danach greift der Browser direkt auf die Ressource zu. Die Konfiguration eines eigenen DNS-Servers ermöglicht eine flexiblere und präzisere Systemkonfiguration und vermeidet die Abhängigkeit von Drittanbietern. In diesem Artikel betrachten wir, wie man DNS mit dem BIND-Namensserver unter Ubuntu einrichtet. Begriffe ZoneEin Teil der DNS-Hierarchie, der auf einem DNS-Server gehostet wird. Er definiert die Grenzen, innerhalb derer ein bestimmter Server oder eine Servergruppe verantwortlich ist. Root-ServerDNS-Server, die Informationen über Top-Level-Domains (.ru, .com usw.) enthalten. DomainEin benannter Teil der DNS-Hierarchie, ein bestimmter Knoten, der weitere Knoten enthält. DNS-Adressen werden von rechts nach links gelesen und beginnen mit einem Punkt, wobei Domains ebenfalls durch Punkte getrennt sind.Beispiel: Die Domain poddomen.domen.ru wird als .ru.domen.poddomen gelesen. Der abschließende Punkt wird in der Praxis meist weggelassen. FQDN (Fully Qualified Domain Name)Ein vollständiger Domainname, der alle übergeordneten Domainnamen enthält. Resource Record (Ressourceneintrag)Eine Informationseinheit, die einen Namen mit bestimmten Dienstinformationen verknüpft. Sie besteht aus: Name (NAME) – Name oder IP-Adresse, der die Zone gehört Time to Live (TTL) – Zeit, die ein Eintrag im DNS-Cache gespeichert wird Class (CLASS) – Netztyp, üblicherweise IN (Internet) Type (TYPE) – Zweck des Eintrags Data (DATA) – Zusätzliche Informationen Häufige Resource Records A-RecordOrdnet einen Hostnamen einer IPv4-Adresse zu. Jede Netzwerkschnittstelle kann nur einen A-Record haben. website.com.   520   IN   A   91.206.179.207 AAAA-RecordWie ein A-Record, jedoch für IPv6. CNAMECanonical Name Record – ein Alias für einen echten Namen zur Weiterleitung. MXDefiniert Mailserver für eine Domain.NAME enthält die Zieldomain, DATA die Priorität und den Host. website.com.   17790   IN   MX   10 mx.website.com. website.com.   17790   IN   MX   20 mx2.website.com. NSVerweist auf den DNS-Server, der für die Domain zuständig ist. PTROrdnet einer IP-Adresse einen Domainnamen zu (Reverse DNS). SOABeschreibt die grundlegenden Einstellungen einer Zone. SRVEnthält Serveradressen für interne Domain-Dienste (z. B. Jabber). Voraussetzungen Um den Anweisungen in diesem Artikel zu folgen, benötigen Sie mindestens zwei Ubuntu-Server im selben Rechenzentrum. Diese können bei Hostman bestellt werden. Wir verwenden zwei Ubuntu-20.04-Server als primären und sekundären DNS-Server (ns1 und ns2). Zusätzlich gibt es weitere Server, die diese DNS-Server nutzen. Auf jedem Server sind Superuser-Rechte erforderlich. Installation von BIND auf den DNS-Servern Wir verwenden bind9 als DNS-Server. Installieren Sie das Paket aus den Linux-Repositories: sudo apt update && sudo apt upgrade -y sudo apt install bind9 Zusätzlich wird empfohlen, Netzwerk-Tools zu installieren: sudo apt install dnsutils Starten Sie anschließend den bind9-Dienst: sudo service bind9 start Die Hauptkonfigurationsdatei befindet sich unter: /etc/bind/named.conf Sie enthält die allgemeinen Einstellungen und bindet weitere Konfigurationsdateien ein. named.conf.options Diese Datei enthält die allgemeinen Serverparameter. options {         dnssec-validation auto;         auth-nxdomain no;         directory "/var/cache/bind";         recursion no;         listen-on {                      172.16.0.0/16;                      127.0.0.0/8;         };         forwarders {             172.16.0.1;             8.8.8.8;         }; }; Überprüfen Sie die Konfiguration mit: sudo named-checkconf Primärer DNS-Server Der primäre DNS-Server speichert die Hauptkopie der Zonendateien. sudo mkdir /etc/bind/master-zones sudo touch /etc/bind/master-zones/test.example.com.local.zone Zonendatei-Inhalt: $ttl 3600 $ORIGIN test.example.com. test.example.com. IN SOA ( ns.test.example.com. abuse.test.example.com. 2022041201 10800 1200 604800 3600 ) @   IN NS ns.test.example.com. @   IN NS ns2.test.example.com. @   IN A 172.16.101.3 ns  IN A 172.16.0.5 ns2 IN A 172.16.0.6 Prüfen: sudo named-checkzone test.example.com. /etc/bind/master-zones/test.example.com.local.zone named.conf.local zone "test.example.com." {     type master;     file "/etc/bind/master-zones/test.example.com.local.zone"; }; Konfiguration prüfen und Dienst neu starten: sudo named-checkconf sudo named-checkconf -z sudo service bind9 restart Views einrichten acl "local" { 172.16.0.0/16; }; view "local" {     match-clients { local; };     include "/etc/bind/named.conf.local"; }; Sekundärer DNS-Server Installation wie beim primären Server. Slave-Zone: zone "test.example.com." {     type slave;     file "/etc/bind/slave/test.example.com.local.zone";     masters { 172.16.0.5; }; }; Zone-Transfer: sudo rndc retransfer test.example.com Seriennummer immer erhöhen, z. B. Datum + Zähler. MX-Record hinzufügen @ IN MX 10 mx.test.example.com. @ IN MX 20 mx2.test.example.com. SOA-Seriennummer aktualisieren und BIND neu laden: sudo service bind9 reload Reverse DNS einrichten Zonendatei: sudo nano /etc/bind/master-zones/16.172.in-addr.arpa.zone PTR-Einträge hinzufügen und prüfen. Externe Domain-Zone Externe IP in listen-on hinzufügen, separate Zone und View definieren, anschließend Transfer auf dem sekundären Server durchführen. Debugging und Logging logging {     channel bind.log {         file "/var/lib/bind/bind.log" versions 10 size 20m;         severity debug;         print-category yes;         print-severity yes;         print-time yes;     };     category queries { bind.log; }; }; Fazit In dieser Anleitung haben wir DNS auf einem Ubuntu-Server mit bind9 konfiguriert. Die beiden DNS-Server können nun für die Namensauflösung im Netzwerk verwendet werden.Andere Server sollten als DNS-Server 172.16.0.5 und 172.16.0.6 nutzen. Diese Konfiguration kann als Grundlage für weitere Erweiterungen dienen, z. B. für die Einrichtung eines Mailservers.
17 February 2026 · 7 min to read
Docker-Plattform

Docker Compose installieren auf Ubuntu: vollständige Anleitung

Docker Compose hat grundlegend verändert, wie Entwickler containerisierte Anwendungen erstellen und betreiben, insbesondere wenn mehrere voneinander abhängige Services koordiniert werden müssen. Dieses Tool ersetzt die manuelle Verwaltung einzelner Container durch einen strukturierten, YAML-basierten Workflow und ermöglicht es Teams, komplette Anwendungsarchitekturen in einer einzigen Konfigurationsdatei zu definieren. Für Ubuntu-Umgebungen bedeutet dies reproduzierbare Deployments, vereinfachtes Skalieren und geringeren Betriebsaufwand. Diese Anleitung bietet eine neue Perspektive auf die Installation und Nutzung von Docker Compose und liefert tiefere Einblicke in die praktische Umsetzung. Voraussetzungen Bevor du mit diesem Tutorial beginnst, stelle sicher, dass Folgendes erfüllt ist: Stelle eine Ubuntu-Cloud-Server-Instanz bei Hostman bereit. Verfüge über ein Benutzerkonto mit sudo-Rechten oder Root-Zugriff, um Pakete zu installieren und Docker zu verwalten. Docker muss installiert sein und auf dem Server laufen, da Docker Compose auf der Docker Engine aufsetzt. Warum Docker Compose wichtig ist Moderne Anwendungen bestehen häufig aus miteinander verbundenen Komponenten wie APIs, Datenbanken und Caching-Schichten. Diese Elemente einzeln mit Docker-Befehlen zu verwalten, wird mit zunehmender Komplexität schnell unübersichtlich. Docker Compose löst dieses Problem, indem alle Services, Netzwerke und Speicheranforderungen in einer docker-compose.yml-Datei definiert werden können. Dieser Ansatz sorgt für Konsistenz über alle Umgebungen hinweg – egal ob lokal auf einer Ubuntu-Maschine oder auf einem Cloud-Server. Ein Beispiel: Eine Webanwendung besteht aus einem Node.js-Backend, einer PostgreSQL-Datenbank und einem Redis-Cache. Ohne Docker Compose müsste jede Komponente mit separaten docker run-Befehlen und präzisen Netzwerkparametern gestartet werden. Mit Compose werden diese Abhängigkeiten einmal definiert und können anschließend mit einem einzigen Befehl gestartet oder beendet werden. Installation von Docker Compose Folge diesen Schritten, um Docker Compose auf deinem Ubuntu-System zu installieren. Schritt 1: Überprüfen, ob Docker installiert und aktiv ist Docker Compose ist eine Erweiterung von Docker. Überprüfe daher zuerst den Status des Docker-Dienstes: sudo systemctl status docker Wenn der Dienst nicht aktiv ist, starte ihn mit: sudo systemctl start docker Schritt 2: Systempakete aktualisieren Aktualisiere die Paketlisten, um Zugriff auf aktuelle Softwareversionen zu haben: sudo apt-get update Schritt 3: Grundlegende Hilfsprogramme installieren Für eine sichere Kommunikation mit den Docker-Repositories werden folgende Pakete benötigt: sudo apt-get install ca-certificates curl Schritt 4: Docker-GPG-Schlüssel konfigurieren Authentifiziere Docker-Pakete, indem du den kryptografischen Schlüssel hinzufügst: sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc Dieser Schritt stellt sicher, dass die Pakete während der Übertragung nicht manipuliert wurden. Schritt 5: Docker-Repository hinzufügen Füge das Docker-Repository passend zu deiner Ubuntu-Version hinzu: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Der Befehl erkennt die Ubuntu-Version automatisch über VERSION_CODENAME. Schritt 6: Docker-Compose-Plugin installieren Aktualisiere die Paketlisten und installiere das Compose-Plugin: sudo apt update sudo apt-get install docker-compose-plugin Schritt 7: Installation überprüfen Überprüfe die erfolgreiche Installation mit: docker compose version Beispielausgabe: Docker Compose version v2.33.0 Ein praktisches Docker-Compose-Projekt erstellen Zur Demonstration der Docker-Compose-Funktionen stellen wir einen Webserver mit Nginx bereit. 1. Projektverzeichnis initialisieren Erstelle ein Arbeitsverzeichnis: mkdir ~/compose-demo && cd ~/compose-demo 2. Services in docker-compose.yml definieren Erstelle die Konfigurationsdatei: nano docker-compose.yml Füge folgenden Inhalt ein: services:   web:     image: nginx:alpine     ports:       - "8080:80"     volumes:       - ./app:/usr/share/nginx/html Erklärung: services: Wurzelelement zur Definition der Container web: Benutzerdefinierter Servicename image: Alpine-basiertes Nginx-Image mit geringem Ressourcenverbrauch ports: Zuordnung von Port 8080 (Host) zu Port 80 (Container) volumes: Synchronisiert das lokale app-Verzeichnis mit dem Web-Root des Containers 3. Webinhalt erstellen Lege die HTML-Struktur an: mkdir app nano app/index.html Füge den folgenden HTML-Code ein: <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <title>Docker Compose Test</title> </head> <body>   <h1>Hello from Docker Compose!</h1> </body> </html> Container orchestrieren: Start bis Shutdown 1. Services im Hintergrund starten docker compose up -d Docker Compose lädt das Nginx-Image automatisch herunter und konfiguriert das Netzwerk. 2. Container-Status überprüfen docker compose ps -a 3. Webanwendung aufrufen Rufe lokal http://localhost:8080 oder auf einem Remote-Server http://<SERVER_IP>:8080 auf. Die Testseite sollte angezeigt werden. 4. Fehlerdiagnose über Logs Bei Problemen kannst du die Container-Logs prüfen: docker compose logs web 5. Sauberes Stoppen und Aufräumen Container stoppen: docker compose stop Alle Projektressourcen entfernen: docker compose down Befehlsübersicht: Über die Grundlagen hinaus Diese Befehle erweitern das Container-Management: docker compose up --build – Images vor dem Start neu erstellen docker compose pause – Container anhalten, ohne sie zu beenden docker compose top – Laufende Prozesse in Containern anzeigen docker compose config – Konfiguration prüfen und anzeigen docker compose exec – Befehle in laufenden Containern ausführen(z. B. docker compose exec web nginx -t zum Testen der Nginx-Konfiguration) Fazit Docker Compose verwandelt die Orchestrierung mehrerer Container von einer manuellen, fehleranfälligen Aufgabe in einen strukturierten und wiederholbaren Prozess. Durch die Installation von Docker Compose, das Definieren von Services in YAML und die Nutzung zentraler Befehle kannst du selbst komplexe Anwendungen zuverlässig verwalten.
14 January 2026 · 6 min to read
PHP-Skriptsprache

PHP und PHP-FPM auf Ubuntu 24.04 installieren

In dieser Anleitung zeigen wir, wie man PHP und PHP-FPM auf Ubuntu 24.04 installiert. PHP (Hypertext Preprocessor) ist eine weit verbreitete Open-Source-Sprache, die hauptsächlich für die Webentwicklung verwendet wird. PHP-FPM ist die bevorzugte FastCGI-Implementierung von PHP und besonders nützlich für stark frequentierte Websites. Am Ende dieser Anleitung läuft PHP auf deinem Server. Falls du noch keinen Server eingerichtet hast, sieh dir zuerst unsere Anleitung zur Server-Erstellung mit Ubuntu an. Voraussetzungen Bevor wir starten, stelle sicher, dass Folgendes vorhanden ist: Ubuntu 24.04 LTS auf dem Server installiert Ein Benutzerkonto mit sudo-Rechten Grundkenntnisse im Umgang mit der Kommandozeile Eine stabile Internetverbindung zum Herunterladen von Paketen System aktualisieren: sudo apt updatesudo apt upgrade Apache installieren Installiere den Apache-Webserver mit folgendem Befehl: sudo apt install apache2 PHP installieren Beginnen wir mit der Installation des PHP-Pakets: sudo apt install php Dieser Befehl installiert das PHP-Standardpaket inklusive Kommandozeilentool und gängiger Bibliotheken. Installation prüfen: php -v PHP-Erweiterungen installieren Erweiterungen erweitern PHP um bestimmte Funktionen. Installiere sie wie folgt: sudo apt install php-curl php-mbstring php-xml Kurzbeschreibungen: php-mysql: Verbindung zu MySQL-Datenbanken php-gd: Bildbearbeitung php-curl: Kommunikation mit externen Servern php-mbstring: Verarbeitung mehrbytefähiger Zeichenketten php-xml: XML-Unterstützung php-zip: ZIP-Unterstützung Weitere Erweiterungen kannst du mit folgendem Befehl durchsuchen: apt-cache search php- PHP-FPM installieren und konfigurieren PHP-FPM ist besonders wichtig für stark frequentierte Webseiten. So installierst und konfigurierst du es: Paket installieren: sudo apt install php-fpm PHP-FPM-Dienst starten (Versionsnummer je nach Installation anpassen): sudo systemctl start php8.3-fpm Automatischen Start beim Booten aktivieren: sudo systemctl enable php8.3-fpm Funktion prüfen: systemctl status php8.3-fpm Wenn alles korrekt eingerichtet ist, erscheint die Ausgabe "Active (running)". PHP und PHP-FPM testen Um sicherzustellen, dass PHP und PHP-FPM ordnungsgemäß funktionieren, erstelle eine Testdatei und rufe sie über den Apache-Webserver auf: mkdir -p /var/www/htmlecho "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php Apache für PHP-FPM konfigurieren. Bearbeite die Datei /etc/apache2/sites-available/000-default.conf und füge hinzu: <FilesMatch \.php$>   SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost/"</FilesMatch> Passe ggf. den Socketpfad und die PHP-Version an. Apache für PHP aktivieren: sudo apt install libapache2-mod-phpsudo a2enmod proxy_fcgi setenvif Apache neu starten: sudo systemctl restart apache2 Zugriff im Browser: http://[server_ip]/info.php Ersetze [server_ip] durch deine IP oder Domain. Mehrere PHP-Versionen installieren Für bestimmte Projekte kann es erforderlich sein, unterschiedliche Anwendungen mit jeweils eigenen Anforderungen auszuführen. So verwaltest und nutzt du mehrere PHP-Versionen unter Ubuntu 24.04: PHP-Repository hinzufügen: sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/php && sudo apt update Benötigte PHP-Versionen installieren: sudo apt install php8.1 php8.1-fpm Aktive PHP-Version festlegen: sudo update-alternatives --set php /usr/bin/php8.1 Wenn du mehrere PHP-Versionen verwendest, achte darauf, dass dein Webserver auf den entsprechenden PHP-FPM-Socket zeigt. PHP und PHP-FPM absichern: Best Practices Als Webentwickler weißt du, wie wichtig es ist, PHP und PHP-FPM sicher und stabil in Webanwendungen zu integrieren. In diesem Abschnitt stellen wir dir eine Reihe von Sicherheitsmaßnahmen vor, die du beim Einsatz von PHP und PHP-FPM beachten solltest. 1. PHP und PHP-FPM aktuell halten Halte PHP und PHP-FPM stets auf dem neuesten Stand. Regelmäßige Updates schließen bekannte Sicherheitslücken und verbessern die allgemeine Stabilität und Sicherheit deines Systems. Prüfe regelmäßig auf verfügbare Updates und installiere sie zeitnah. 2. PHP sicher konfigurieren Deaktiviere unnötige und potenziell gefährliche Funktionen wie exec, shell_exec und eval in der php.ini. Begrenze mit der Direktive open_basedir den Zugriff auf bestimmte Verzeichnisse, um unbefugten Dateizugriff zu verhindern. Setze display_errors in produktiven Umgebungen auf Off, um Fehlermeldungen vor Angreifern zu verbergen. Begrenze außerdem Upload-Größen und maximale Ausführungszeiten, um Ressourcenüberlastungen zu vermeiden. Stelle sicher, dass PHP unter einem separaten, eingeschränkten Benutzer mit minimalen Rechten läuft. 3. Fehlermeldungen sicher behandeln In Entwicklungsumgebungen helfen Fehlermeldungen beim Debuggen. In produktiven Umgebungen sollten sie jedoch nicht angezeigt werden. Setze display_errors = Off und log_errors = On, um Fehler sicher zu protokollieren, ohne sie dem Benutzer offenzulegen. 4. Eingabevalidierung umsetzen Sichere alle Benutzereingaben durch Validierung und Filterung ab. Verwende Prepared Statements für Datenbankzugriffe, um SQL-Injection zu verhindern. 5. PHP-FPM sicher konfigurieren Lass PHP-FPM unter einem dedizierten Benutzer mit minimalen Rechten laufen. Der Zugriff auf den PHP-FPM-Socket oder -Port sollte ausschließlich der Webanwendung vorbehalten sein. 6. Open_basedir aktivieren Verwende die open_basedir-Direktive, um Dateizugriffe auf festgelegte Verzeichnisse zu beschränken. So wird verhindert, dass PHP auf sensible Bereiche des Dateisystems zugreift. 7. HTTPS verwenden Schütze alle Verbindungen zu deiner Webanwendung durch HTTPS. So verhinderst du Man-in-the-Middle-Angriffe und schützt sensible Daten bei der Übertragung. Fazit Mit dieser Anleitung hast du erfolgreich PHP und PHP-FPM auf Ubuntu 24.04 installiert. Dein Server ist bereit für dynamische Webanwendungen. Führe regelmäßig Updates durch, um Sicherheit und Leistung zu erhalten. Wenn dir diese Anleitung gefallen hat, schau dir unsere Cloud Server an – ideal für deinen Workflow in der Cloud!
10 July 2025 · 5 min to read

Haben Sie Fragen
oder benötigen Sie Unterstützung?

Unsere Fachleute stehen Ihnen jederzeit zur Verfügung –
egal ob Sie Hilfe benötigen oder nicht wissen, wo Sie anfangen sollen.
E-Mail an uns
Hostman's Support