zum Hauptinhalt springen.
UX/UI Design, Entwicklung & TYPO3 in Karlsruhe Karlsruhe | seit 2006

TYPO3 11 LTS lokal via Composer installieren - mit der Entwicklungsumgebung DDEV

27.10.2021, geschätzte Lesedauer: Minute(n). #entwicklung #typo3

Seit einigen Jahren ist die empfohlene Installationsmethode für TYPO3 die Installation mit dem PHP Paketmanager Composer. In der Dokumentation für die aktuelle Version 11.5 (LTS) fehlt nun die Beschreibung für die klassische TYPO3 Installationsmethode via Symlinks. Ich verstehe das als ein Anzeichen dafür, dass mittelfristig TYPO3 nur noch via Composer installiert werden könnte. Für mein Beispiel verwende ich die Entwicklungsumgebung DDEV (Anleitung für macOS), eine elegante und schnelle Methode, TYPO3 lokal zu installieren.

Anmerkung vorab:

Es gibt zahlreiche variierende Anleitungen, auch in der offiziellen TYPO3 Dokumentation. Nicht alle funktionieren aktuell bei exakter Umsetzung oder sind vollständig. Auch diese Anleitung wird etwas unberücksichtigt lassen und sich natürlich zukünftig überholen. Gerne Anmerkungen/Anregungen per Mail an mich. Danke!

Installation von Composer, Docker und DDEV

  • Den Paketmanager Composer installieren:
    <brew install composer>
  • DDEV setzt Docker voraus. Daher muss zunächst Docker installiert werden: https://www.docker.com/get-started oder ebenfalls über Homebrew installieren.
  • DDEV installieren via Homebrew (macOS & Linux):
    <brew install drud/ddev/ddev>
  • Initiales installieren eines eigenen lokalen SSL Zertifikats:
    <mkcert -install>
    Weitere Informationen: github.com/FiloSottile/mkcert

Installation TYPO3 v11 via DDEV

Verzeichnis für die TYPO3 Installation erstellen und im Terminal in dieses Verzeichnis wechseln. Dann analog zur offiziellen Anleitung folgende Befehle ausführen:

// DDEV initialisiert das Projekt als TYPO3 Projekt: ddev config --project-type=typo3 --docroot=public --create-docroot // TYPO3 Core "Paket" wählen: ddev composer create "typo3/cms-base-distribution:^11.5" // TYPO3 installieren sowie Benutzername und Passwort fürs Backend, Datenbank und den TYPO3 Seiten Name anlegen: ddev typo3cms install:setup // Das Frontend der neuen Installation im Browser öffnen: ddev launch

In der Datei composer.json werden nun alle installierten Erweiterungen aufgelistet. Jede neu installierte Erweiterung wird hier aufgenommen. Erstaunlicherweise ist auch die Erweiterung "TYPO3 Console" enthalten, mit der gerade sehr elegant das Setup u. a. mit Benutzername und Passwort vorgenommen wurde. Die komplette TYPO3 Installation befindet sich im Verzeichnis "public".

Weitere TYPO3 Core Erweiterungen installieren

Wir haben oben TYPO3 mit den Basis Funktionen installiert. Eine Liste aller Core Erweiterungen finden sich hier: get.typo3.org/misc/composer/helper. In der Installation fehlende Erweiterungen können ausgewählt und anschließend installiert werden. Dazu wird der generierte Shell Befehl kopiert und anschließend im Terminal innerhalb des Projektverzeichnisses ausgeführt. Nun werden die fehlenden Erweiterungen nachgeladen und in der composer.json Datei als „required“ hinterlegt. Für das Nachinstallieren des Recyclers wäre das z. B.:

<ddev composer require "typo3/cms-recycler:^11.5">

Der Befehl beinhaltet einen Vendornamen und den Extensionname. Dies gilt auch für alle anderen Erweiterungen:
<ddev composer require Vendorname/Extensionname>

Bei der "Base Distribution" vermisse ich zudem:
<ddev composer require "typo3/cms-reports:^11.5">
<ddev composer require "typo3/cms-lowlevel:^11.5">

Nach der Installation von Erweiterungen muss im Install Tool die Datenbank aktualisiert werden.

Sonstige Erweiterungen installieren

Alle relevanten Erweiterungen haben Composer Support. Im TYPO3 Extension Repository wählt man die gewünschte Extension aus. In der Detailansicht ist unter "Composer support" der entsprechende Befehl aufgeführt, z. B. für die Erweiterung Container ist das:

<ddev composer req b13/container>

Die Erweiterungen landen alle wie gewohnt in "typo3conf/ext".

Leider landen nicht mehr alle Erweiterungen im TER. Eine weitere Plattform für TYPO3 Erweiterungen ist Packagist.

Lokale Erweiterungen installieren

Auch nicht öffentliche, lokale Erweiterungen können via Composer installiert werden, zum Beispiel die Template-Extension: Die gängige Methode zur Bereitstellung der Website Templates und des Website Setups ist die Erstellung einer projektspezifischen Provider Extension.

Zur Installation von lokalen Erweiterungen legt man zunächst auf der obersten Ebene ein neues Verzeichnis an,  ich benenne das hier "localpackages". In dieses Verzeichnis werden alle lokalen Erweiterungen kopiert bzw. dort angelegt. Nun sind zwei weitere Schritte notwendig:

1) Die composer.json muss zunächst innerhalb der äußeren Klammern um folgenden Code ergänzt werden (ggfs. Verzeichnis-Name zur lokalen Erweiterung anpassen):

"repositories": [ { "type": "path", "url": "localpackages/*" }, { "type": "composer", "url": "https://composer.typo3.org/" } ],

2) Als Nächstes muss - sofern noch nicht vorhanden - auch innerhalb der lokalen Extension eine composer.json Datei angelegt werden. Diese Datei sieht in meinem Beispiel so aus:

{ "name": "websitesgraphix/mfprovider", "description": "Template Provider", "type": "typo3-cms-extension", "version": "1.0.0", "authors": [ { "name": "Martin Farkas", "homepage": "https://www.websites-graphix.com" } ], "keywords": [ "typo3", "template provider", "site package" ], "extra": { "typo3/cms": { "extension-key": "mfprovider" } }, "require": { "typo3/cms-core": "^11.5", "typo3/cms-rte-ckeditor": "^11.5" } }

Setzt die Erweiterung eine andere Extension voraus, dann sollte diese zuvor installiert werden oder als Abhängigkeit in der composer.json definiert werden. Ansonsten könnte das die TYPO3 Installation "craschen", bis diese Abhängigkeit aufgelöst ist.

Jetzt kann die Extension installiert werden:
<ddev composer require websitesgraphix/mfprovider:@dev>

Durch die Zeile "version": "1.0.0"," kann das <:@dev> auch entfallen.

Im Verzeichnis "typo3conf/ext" werden Symlinks angelegt, die auf das gewählte Verzeichnis für die lokalen Erweiterungen verweisen.

Die Datenbank muss jetzt nur noch via "Analyze Database Structure" im Install Tool die fehlenden Tabellen anlegen.

Erweiterungen deinstallieren

Das Deinstallieren einer Extension erfolgt über den Befehl (zuvor die Erweiterung in der composer.js aus "require" austragen):
<ddev composer remove Vendorname/Extensionname>

Ich nutze zum Beispiel die Standard Core Erweiterung "Dashboard" nicht. Deinstallieren erfolgt entsprechend so:
<ddev composer remove typo3/cms-dashboard>

Auch hier muss die Datenbank via "Analyze Database Structure" im Install Tool angepasst werden.

Sonstiges

Übersicht: Datenbank, MailHog und mehr:

Einen Überblick zur Datenbank, Mailhog und einer Liste der URLs gibt es hier:
<ddev describe>

Zugang PHPMyAdmin:
<ddev launch -p>
(Update 28.07.2023: Seit DDEV v1.22.0 wird PhpMyAdmin als Add-on installiert <ddev get ddev/ddev-phpmyadmin> und wird mit <ddev phpmyadmin> aufgerufen.)

Zugang Mailhog:
<ddev launch -m>

Einige hilfreiche Befehle:

Auf mögliche TYPO3 Core Updates prüfen:
<ddev composer outdated "typo3/*">

Auf mögliche TYPO3 Core Updates inkl. installierter Extensions prüfen:
<ddev composer outdated -D>

TYPO3 Core aktualisieren inklusive aller abhängiger Erweiterungen:
<ddev composer update "typo3/*" -W>

TYPO3 Core aktualisieren inklusive aller installierter Erweiterungen:
<ddev composer update>

TYPO3 Erweiterungen aktualisieren:
<ddev composer update VENDORNAME/EXTENSIONNAME -W>

Alle DDEV Projekte herunterfahren:
<ddev poweroff>

Aktuelles DDEV Projekt herunterfahren:
<ddev stop>

DDEV aktualisieren (zunächst muss DDEV beendet werden):
<ddev poweroff && brew upgrade drud/ddev/ddev>

DDEV Hilfe:
<ddev --help>

Fazit

Der eigentliche Installationsvorgang mit Composer ist auf einem Mac sehr langsam. Ursache hierfür ist vermutlich DDEV. Allerdings spielen diese 1-2 Minuten nicht ernsthaft eine Rolle, es muss ja nicht täglich ein neues TYPO3 installiert werden. Danach ist das sehr performant.

Was mir an DDEV gut gefällt: es wird HTTPS direkt unterstützt und alles funktioniert ohne weitere Einstellungen (das liegt auch an TYPO3 11.5). Zudem ist ImageMagick sofort verfügbar, denn entgegen meiner früheren MAMP (Pro) Installationen wird auch der Pfad zu IM erkannt. Auch sehr schön: Mailhog wird direkt mitgeliefert und steht - ohne weitere Anpassungen - zur Verfügung.

 

Update:

Einfaches Deployment

Wie man die Installation auch ohne komplexere Deployment Tools via Bash Script auf dem Server bereitstellt, zeige ich im Update meines Blogbeitrags hier.

Skyline Karlsruhe