TYPO3 Docker: How to Install and Configure It with TYPO3

TYPO3 Docker: How to Install and Configure It with TYPO3

FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.

Das Einrichten von TYPO3 kann manchmal überwältigend sein, insbesondere beim Umgang mit verschiedenen Abhängigkeiten und Konfigurationen. Docker bietet eine vereinfachte Lösung durch die Containerisierung Ihrer TYPO3-Umgebung, um Konsistenz in der Entwicklung, im Staging und in der Produktionsumgebung sicherzustellen.

Und das Beste daran? Sie haben Optionen. Wenn Sie den einfachsten Weg suchen, bietet DDEV eine schnelle und benutzerfreundliche Lösung. Möchten Sie mehr Kontrolle und Flexibilität? Das WebDevOps Docker-Setup ermöglicht es Ihnen, alles nach Ihren Bedürfnissen anzupassen.

Bereit, TYPO3 intelligenter, schneller und sauberer auszuführen? Lassen Sie uns eintauchen und TYPO3 auf die richtige Weise dockerisieren.

Bevor wir in den Schritt-für-Schritt-Leitfaden eintauchen... Wenn Sie neugierig sind, wie Entwickler Docker mit TYPO3 verwenden, möchten Sie vielleicht unseren Begleitartikel lesen:

TYPO3 ist ein kostenloses, Open-Source Content Management System (CMS), das Unternehmen und Organisationen dabei unterstützt, ihre Websites zu erstellen, zu verwalten und zu erweitern. Es wurde 1997 von Kasper Skårhøj gegründet und ist seitdem zu einer der beliebtesten CMS-Plattformen geworden - insbesondere in Europa.

TYPO3 ist in PHP geschrieben und verwendet TypoScript, eine leistungsstarke Konfigurationssprache, die fortschrittliche Anpassungsmöglichkeiten und Flexibilität bietet. Sie benötigen keine spezielle Software - TYPO3 läuft in Ihrem Browser und gibt Inhalte mit Standard-HTML und JavaScript aus.

Ob Sie eine kleine Unternehmenswebsite, ein Universitätsportal oder eine große Unternehmenswebsite betreiben, TYPO3 kann an Ihre Bedürfnisse angepasst werden.

Stellen Sie sich ein Unternehmens-CMS vor, das sich mit Ihrem Projekt weiterentwickelt, ohne dabei an Komplexität zuzunehmen. Das ist TYPO3 für Sie! Es ist eine Open-Source-Plattform, die sich besonders in folgenden Bereichen auszeichnet:

Hier sind die Hauptgründe, warum TYPO3-Entwickler, Vermarkter und Agenturen TYPO3 für seine:

  • Modularität: Lassen Sie Ihre Website genau das tun, was Sie brauchen. Nicht mehr, nicht weniger.
  • Sicherheit & Stabilität: Regelmäßige LTS (Langzeitunterstützung) -Versionen helfen Ihnen, jahrelang sicher zu bleiben.
  • Skalierbarkeit: Von einer winzigen lokalen Website bis zu einer riesigen globalen Plattform kann TYPO3 alles bewältigen.
  • Gemeinschaftlich getriebene Entwicklung: Genießen Sie eine lebhafte globale Community, die TYPO3 kontinuierlich verfeinert und weiterentwickelt.

Wussten Sie schon? TYPO3 betreibt über 500.000+ aktive Websites weltweit! 

Erfahren Sie mehr über TYPO3-Fakten.

Warum TYPO3 verwenden?

TYPO3 bietet erweiterte Funktionen wie granulare Benutzerrollen, Multi-Site-Verwaltung und ein starkes Ökosystem von Erweiterungen. Es ist ideal für Unternehmen und Agenturen, die Skalierbarkeit und langfristige Unterstützung benötigen.

Das manuelle Einrichten von TYPO3 kann viel Zeit in Anspruch nehmen - insbesondere wenn es um PHP-Versionen, Webserver, Datenbanken und andere Tools geht. Hier kommt Docker ins Spiel. Es vereinfacht den Prozess, indem es alles, was TYPO3 benötigt, in leichte, tragbare Container verpackt. Das bedeutet, dass Ihre TYPO3-Umgebung auf jedem Gerät gleich läuft - egal ob Sie auf Windows, macOS, Linux oder in der Cloud sind. Keine Konfigurationsprobleme mehr, keine "es funktioniert auf meinem Gerät" Probleme.

Vorteile der Verwendung von TYPO3 in Docker:

  • Umweltkonsistenz: Beseitigen Sie Probleme mit "es funktioniert auf meinem Gerät", indem Sie überall das gleiche Container-Image ausführen.
  • Skalierbarkeit: Starten Sie mehrere Containerinstanzen für Lastenausgleich oder Updates ohne Ausfallzeiten.
  • Portabilität: Verschieben oder replizieren Sie Ihr gesamtes TYPO3-Setup schnell über verschiedene Server oder Cloud-Anbieter.
  • Isolation & Sicherheit: Container halten Anwendungs- und Systembibliotheken getrennt.

Für wen ist dieser Leitfaden gedacht?

  • Neue Docker-Benutzer, die sich mit containerbasiertem Hosting beschäftigen.
  • Erfahrene DevOps-Profis, die nach einem einsatzbereiten Docker-Compose-Schnipsel für TYPO3 suchen.

Bevor wir tiefer in Docker für TYPO3 eintauchen, ist es wichtig zu verstehen, wie sich Container von herkömmlichen virtuellen Maschinen (VMs) unterscheiden. Beide helfen dabei, Anwendungen zu isolieren, aber sie tun dies auf sehr unterschiedliche Weise.

MerkmalVirtuelle Maschinen (VMs)Container
ArchitekturEnthält ein vollständiges Betriebssystem, Hypervisor und die AnwendungTeilt den Host-OS-Kernel; isoliert auf Prozessebene
Boot-ZeitLangsam – dauert Minuten aufgrund des vollständigen OS-StartsSchnell – startet in Sekunden, da kein OS-Start erforderlich ist
RessourcennutzungSchwer – jede VM führt ein vollständiges OS aus, verbraucht mehr Speicher und CPULeichtgewichtig – minimale Overhead durch gemeinsame Nutzung des Host-OS
IsolierungStark – Isolierung auf Hardware-Ebene durch Hypervisor bereitgestelltStark – Isolierung auf Software-Ebene über Namespaces und cgroups
PortabilitätMäßig – abhängig vom zugrunde liegenden Hypervisor oder PlattformHoch – Container können überall ausgeführt werden, wo Docker unterstützt wird
Bestes AnwendungsszenarioAusführen mehrerer Betriebssysteme, Unterstützung von Legacy- oder OS-spezifischen AnwendungenAusführen von Mikroservices, CI/CD-Pipelines, TYPO3 und skalierbaren App-Bereitstellungen

Um TYPO3 Docker auszuführen, benötigen Sie hauptsächlich die folgenden Komponenten:

1. Docker & Docker Compose

  • Docker: Installieren Sie Docker, um Container auszuführen.
  • Docker Compose: Installieren Sie Docker Compose, um Multi-Container-Setups zu verwalten (wie einen Webserver und eine Datenbank).

2. DDEV (Für die lokale Entwicklung)
DDEV ist ein Open-Source-Tool, das den Prozess der Einrichtung von lokalen Entwicklungsumgebungen mit Docker vereinfacht. Es unterstützt TYPO3 und andere CMS-Plattformen und bietet Entwicklern einen optimierten Workflow.

3. PHP-Version

  • PHP: TYPO3 erfordert PHP 7.4 oder höher. Stellen Sie sicher, dass Ihr TYPO3 Docker-Image die richtige PHP-Version enthält (üblicherweise PHP 7.4 oder 8.x).

4. Webserver (Apache oder Nginx)

  • Apache oder Nginx: Ein Webserver zur Bereitstellung der TYPO3-Anwendung. Sie können ein vorab konfiguriertes TYPO3 Docker-Image mit Apache und PHP verwenden oder Nginx mit PHP-FPM konfigurieren.

5. Datenbank (MariaDB oder MySQL)

  • MariaDB oder MySQL: TYPO3 verwendet in der Regel MariaDB oder MySQL für die Datenbank. Sie können das offizielle TYPO3 Docker-Image für MariaDB oder MySQL verwenden.

6. Docker Compose-Datei

  • Definieren Sie Ihre Dienste (Webserver, Datenbank) in einer docker-compose.yml-Datei.
  • Docker verpackt Anwendungen (wie TYPO3, PHP oder MySQL) in leichte, eigenständige Container.
  • Docker Compose verwaltet Multi-Container-Anwendungen über eine einzige YAML-Datei, automatisiert das Verknüpfen von Containern, das Teilen von Volumes und die Kommunikation. 

Erklärung:

  • Der Webserver-Container empfängt Traffic auf Port 80 oder 443.
  • PHP-FPM führt die TYPO3-Anwendung aus. (Einige bevorzugen einen einzelnen Apache+PHP-Container stattdessen.)
  • MariaDB befindet sich in einem separaten Container für die Datenbank.
  • Volumes speichern persistente Daten, wie TYPO3-Datei-Uploads oder Logs.

Bevor Sie eintauchen, beachten Sie die Veröffentlichungszyklen von TYPO3:

  • LTS (Langzeitunterstützung): In der Regel drei Jahre Updates pro Hauptversion.
  • ELTS (Erweiterte LTS): Kostenpflichtige Option, wenn Sie zusätzliche Zeit über die Standard-LTS hinaus benötigen.

Wenn Sie auf einer derzeit unterstützten LTS-Version bleiben, erhalten Sie wichtige Sicherheitspatches und Funktionsverbesserungen.

Roadmap anzeigen

1. PHP & TYPO3 Kompatibilität

TYPO3 VersionPHP VersionenStatus
9 ELTS7.2–7.4Aktiver ELTS
10 ELTS7.2–7.4Aktiver ELTS
11 ELTS7.4, 8.0Aktiver ELTS
12 LTS8.1–8.4Aktiver ELTS
13 LTS8.2–8.4Aktiver ELTS

2. Systemanforderungen

  • Webserver: Apache oder Nginx
  • Datenbank: MariaDB/MySQL empfohlen
  • Composer: Empfohlen für eine reibungslosere TYPO3-Erfahrung

Überprüfen Sie immer die offiziellen Systemanforderungen von TYPO3, um sicherzustellen, dass Sie auf dem neuesten Stand sind.

Unten finden Sie eine Beispieldatei docker-compose.yml für ein grundlegendes TYPO3-Setup. Es verwendet separate Container für Web/PHP, Datenbank und einen optionalen Composer-Schritt zur Verwaltung von Abhängigkeiten.

Schritt 1. Projektstruktur

my-typo3-project/
 ├─ docker-compose.yml
 ├─ public/ (or "typo3cms/")
 └─ ... any other project files ...

Schritt 2. Beispiel docker-compose.yml.

version: '3.7'
services:
  web:
    image: nginx:stable
    container_name: typo3-web
    ports:
      - "80:80"
    volumes:
      - ./public:/var/www/html
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      - php
    networks:
      - typo3net

  php:
    image: php:8.1-fpm
    container_name: typo3-php
    volumes:
      - ./public:/var/www/html
    working_dir: /var/www/html
    depends_on:
      - db
    networks:
      - typo3net

  db:
    image: mariadb:10.5
    container_name: typo3-db
    environment:
      - MYSQL_ROOT_PASSWORD=supersecret
      - MYSQL_DATABASE=typo3db
      - MYSQL_USER=typo3user
      - MYSQL_PASSWORD=supersecret
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - typo3net

networks:
  typo3net:

volumes:
  db_data:

Schlüsselpunkte:

  • Der Nginx-Container bindet die nginx.conf für die Website-Konfiguration ein und teilt den public/-Ordner.
  • Der PHP-Container hat ebenfalls public/, sodass Codeänderungen für beide Container sichtbar sind.
  • Der MariaDB-Container ist mit Umgebungsvariablen für den DB-Namen, Benutzer und Passwort konfiguriert.
  • Alle Container befinden sich im typo3net-Netzwerk für eine einfache interne DNS-Auflösung (z. B. db als Hostname).

Schritt 3. (Optional) Nginx-Konfiguration.

Sample nginx.conf:
server {
    listen 80;
    server_name localhost;

    root /var/www/html/public;
    index index.php;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass typo3-php:9000; # the service name:port from docker-compose
    }
}

Schritt 4. Ausführen & Komponistenschritte.

  • Bilder abrufen und Container starten

docker-compose up -d

  • Composer (Optional) 

Sie können Composer in einem benutzerdefinierten Dockerfile einbetten oder einen einmaligen Container ausführen:

 docker run --rm -v $(pwd)/public:/app -w /app composer install
  •  Wenn Sie die offizielle typo3/cms-base-distribution bevorzugen, können Sie sie lokal abrufen und dann Dateien in public/ kopieren.

3. Berechtigungen

Stellen Sie sicher, dass die Dateibesitzrechte/-berechtigungen für den Benutzer, der PHP innerhalb des Containers ausführt, angemessen sind. Auf Linux könnten Sie Folgendes tun:

 sudo chown -R $USER:$USER public

Schritt 5. TYPO3-Installation abschließen.

Sehen Sie unten für eine schrittweise Anleitung, wie Sie TYPO3 einrichten und installieren.

Sobald alle Serverkonfigurationen abgeschlossen sind, ist es an der Zeit, das Setup über den TYPO3-Installationsassistenten abzuschließen. Dieser benutzerfreundliche, schrittweise Assistent hilft Ihnen, den Installationsprozess direkt in Ihrem Browser abzuschließen.

Schritt 1. Überprüfen Sie die Systemumgebung (erkennen Sie, ob Probleme vorhanden sind).

TYPO3 wird Ihren Server nach erforderlichen PHP-Erweiterungen, Ordnerberechtigungen und Systemeinstellungen scannen. Beheben Sie alle aufgeführten Probleme, bevor Sie fortfahren.

Schritt 2. Richten Sie Ihre Datenbankanmeldeinformationen ein.

Geben Sie den Datenbanknamen, Benutzernamen und das Passwort ein, die Sie zuvor erstellt haben. TYPO3 wird dies verwenden, um Ihre Inhalte und Konfigurationen zu speichern.

Schritt 3. Wählen Sie eine vorhandene Datenbank aus oder erstellen Sie eine neue.

Wählen Sie eine vorhandene leere Datenbank aus oder lassen Sie TYPO3 eine neue für Sie erstellen.

Schritt 4. Erstellen Sie Backend-Benutzer & Website.

Richten Sie das Backend-Administrator-Konto ein. Stellen Sie sicher, dass Sie ein sicheres Passwort wählen - Sie werden dies verwenden, um sich im TYPO3-Dashboard anzumelden.

Schritt 5. Installationsprozess starten.

Definieren Sie Ihren Seitennamen und die anfänglichen Einrichtungsoptionen. Sie können auch wählen, eine Distribution zu laden oder mit einer leeren Seite zu beginnen.

Sie haben es geschafft! Jetzt haben Sie eine laufende TYPO3-Website auf AWS.

Schritt 6. Beginnen Sie mit dem Backend-Login.

TYPO3 wird die Einrichtung abschließen und Sie zur Anmeldeseite des Backends weiterleiten.

Die Wahl der richtigen Umgebung für Ihr TYPO3-Projekt hängt von Ihren technischen Anforderungen, Ihrem Budget und Ihren Skalierungsplänen ab. Hier ist ein schneller Vergleich, um Ihnen bei der Entscheidung zu helfen.

PlattformIdeal fürHauptvorteileWichtige Hinweise
Docker / Docker ComposeLokale Entwicklungs , Test oder Microservices SetupsLightweight, fast to deploy, reproducible environmentsNeeds Docker expertise, not ideal for large production without orchestration
Ubuntu (Self-Managed)Entwickler und Teams, die volle Kontrolle und Anpassung wünschenFree, open-source, highly flexible, large community support, easy optimization for TYPO3Requires server management skills (updates, security, performance tuning)
Google Cloud PlatformTeams, die bereits das Google-Ökosystem nutzenEasy G Suite integration, powerful analytics tools, scalable infrastructureSlightly higher learning curve for beginners
AWS (Amazon Web Services)Skalierbare ProduktionsumgebungenHigh availability, global reach, flexible resources, strong securitySlightly higher learning curve for beginners
Microsoft AzureUnternehmen, die Microsoft-Technologien verwendenSeamless integration with Windows, Office, Active Directory, hybrid cloudLicensing and costs may be higher
Platform.shEntwickler mit Fokus auf CI/CD und AutomatisierungGit-based workflows, automatic scaling, zero-downtime deploymentsLess control over underlying infrastructure, premium pricing
  • Verwenden Sie .env-Dateien für sensible Daten und verwenden Sie sie in verschiedenen Projekten erneut.
  • Setzen Sie TYPO3_CONTEXT, um zwischen Entwicklung/Staging/Produktion zu unterscheiden:
environment: 
       - TYPO3_CONTEXT=Development
  • Aktivieren Sie Xdebug mit DDEV zum Debuggen: ddev xdebug on
  • TYPO3 verlässt sich stark auf OPcache, um schnell zu laufen, also stellen Sie sicher, dass es in Ihrer php.ini-Datei ordnungsgemäß eingerichtet ist.
  • Außerdem, wenn Sie Composer verwenden, sperren Sie immer die TYPO3-Version (wie ^13.1) anstelle von dev-master, um unerwartete Updates zu vermeiden.
  • Weißer Bildschirm nach der Installation Dies geschieht normalerweise aufgrund falscher Datei- oder Ordnerberechtigungen. Verwenden Sie ddev ssh oder greifen Sie auf den Container zu, um die Berechtigungen zu überprüfen und zu korrigieren.
  • Fehler "Keine Datenbankverbindung" Stellen Sie sicher, dass Ihr Datenbankcontainer läuft. Überprüfen Sie auch den Datenbanknamen, Benutzernamen und das Passwort in TYPO3 erneut - sie müssen mit den Werten in Ihrer Docker- oder DDEV-Konfiguration übereinstimmen.
  • TYPO3-Website wird im Browser nicht geöffnet Überprüfen Sie die Porteinstellungen in Ihrer docker-compose.yml-Datei. Zum Beispiel sollte dort 80:80 stehen, damit die Website unter localhost verfügbar ist. Wenn Sie DDEV verwenden, bestätigen Sie, dass der DDEV-Router ordnungsgemäß funktioniert.
  • Bildverarbeitungsprobleme in TYPO3 TYPO3 benötigt PHP-Erweiterungen wie gd oder imagick zur Verarbeitung von Bildern. Stellen Sie sicher, dass diese Erweiterungen in Ihrem PHP-Dockercontainer installiert und aktiviert sind.

Das Containerisieren Ihrer TYPO3-Anwendung mit Docker und Docker Compose bietet eine moderne, reproduzierbare Umgebung. Durch die Trennung Ihrer Dienste (Web, PHP-FPM, Datenbank) in separate Container erhalten Sie eine bessere Modularität, einfachere Skalierbarkeit und verbesserte Zuverlässigkeit.

Ob Sie gerade erst anfangen oder Ihre Umgebung feinabstimmen, Docker erleichtert, beschleunigt und flexibilisiert die Arbeit mit TYPO3. Vom ersten TYPO3-Login-Bildschirm bis zur umfassenden Bereitstellung bietet Docker Ihnen die Tools, um Ihre TYPO3-Projekte selbstbewusst aufzubauen, zu skalieren und zu verwalten.

Viel Spaß beim TYPO3en mit Docker!

Ja, aber es wird nur empfohlen, wenn Sie Erfahrung mit Docker haben. Stellen Sie für die Produktion sicher, dass Sie optimierte Images, sichere Konfigurationen und eine ordnungsgemäße Volume-/Datenverarbeitung verwenden. Tools wie Kubernetes oder Docker Swarm werden häufig für skalierbare Bereitstellungen verwendet.

Es wird für einen saubereren Microservices-Ansatz empfohlen, Sie können zur Vereinfachung jedoch auch einen einzelnen php:apache-Container verwenden.

Just switch the image to mysql:8.0 (or another version) in the docker-compose.yml and update environment variables accordingly.

Either use a Dockerfile that installs Composer or run a separate Composer container. Some prefer building a custom image with Composer baked in.

Nein. Obwohl DDEV die einfachste und anfängerfreundlichste Methode ist, können Sie für mehr Kontrolle und Flexibilität auch benutzerdefinierte Docker Compose-Setups oder WebDevOps TYPO3-Images verwenden.

Mounten Sie Volumes für public/fileadmin oder andere relevante Verzeichnisse. Dadurch bleiben die Daten auch dann erhalten, wenn Container zerstört werden.

Es wird typischerweise für die Entwicklung verwendet. Für die Produktion können Sie Docker Swarm, Kubernetes oder einen anderen Orchestrator verwenden. Kleinere Bereitstellungen können Docker Compose jedoch bei sorgfältiger Verwaltung in der Produktion ausführen.

Sie können Ihrer Nginx-Konfiguration ein SSL-Zertifikat hinzufügen und Port 443 freigeben oder einen Reverse-Proxy (wie Traefik oder Nginx Proxy Manager) vor Ihre Container stellen.

Wenn Sie Composer verwenden, aktualisieren Sie Ihre composer.json-Version, führen Sie „composer update“ aus und starten Sie die Container neu. Für den klassischen .zip-Ansatz ersetzen Sie die Dateien in public/ entsprechend.

Docker Compose ist nicht zwingend erforderlich, vereinfacht aber die Einrichtung mehrerer Container. Sie können praktisch alles in einem Container erledigen, allerdings ist dieser weniger modular.

Führen Sie für die Datenbank entweder einen mysqldump-Befehl im Datenbankcontainer aus oder planen Sie ihn extern. Sichern Sie für Uploads Ihr Volume (Ordner) an einem sicheren Ort.

Post a Comment

×