Das Template für TYPO3 in einer Composer-Installation
Da unser Template für TYPO3 auf einem nicht öffentlichen Server liegt, kann es derzeit nicht über packagist.org oder ein individuelles Repository heruntergeladen werden. Mit den folgenden Schritten kannst du aber aus unserem Template für TYPO3 eine Composer-fähige Version erstellen.
Das Template für TYPO3 in einer Composer-Installation mit Cloud-Account von jweiland.net nutzen
Voraussetzungen:
- Einen Cloud-Account von jweiland.net
- SSH-Zugangsdaten
- Eine Datenbank, wir empfehlen eine MariaDB 10.11-Datenbank (Datenbanknamen, Benutzernamen und Passwort notieren!)
- Eine Domäne oder eine Subdomäne, die auf den Server von jweiland.net zeigt und dort auf das Verzeichnis, in dem das TYPO3 Template installiert werden soll. Der Pfad muss mit httpdocs beginnen und in das public Verzeichnis zeigen: httpdocs/typo3cms/<mein-projektverzeichnis>/public
- Das PHP der Domäne oder Subdomäne muss auf PHP 8.2 oder höher stehen (max. PHP 8.5)
1. TYPO3-Basis anlegen
Hinweis: Auf den Servern von jweiland.net ist PHP 7.4 die Standardversion. Da dieses Tutorial PHP 8.3 arbeitet, muss jedem PHP-Befehl der Pfad /opt/alt/php83/usr/bin/php vorangestellt werden. Ebenso muss der Composer mit seinem gesamten Pfad auf gerufen werden /usr/local/psa/var/modules/composer/composer.phar .
Erstelle im Verzeichnis httpdocs/typo3cms ein neues Projektverzeichnis, in dem das TYPO3 Template installiert werden soll und führe darin folgenden Befehl aus:
/opt/alt/php83/usr/bin/php /usr/local/psa/var/modules/composer/composer.phar create-project "typo3/cms-base-distribution:^14.3" ./2. Erweiterungen für das Mustertemplate installieren
Installiere mit diesem Befehl die Extensions, die im Template für TYPO3 standardmäßig enthalten sind, aber nicht required werden:
/opt/alt/php83/usr/bin/php /usr/local/psa/var/modules/composer/composer.phar require typo3/cms-indexed-search typo3/cms-redirects jweiland/video-shariff yoast-seo-for-typo3/yoast_seo
3. Mustertemplate-Archiv kopieren und entpacken
Das Mustertemplate befindet sich als komprimiertes Verzeichnis mit dem Namen sitepackage-14.3.x.tar.gz (z.B. sitepackage-14.3.6.tar.gz) im Cloudordner unter httpdocs/typo3cms. Kopiere es in dein Projektverzeichnis und entpacke es:
cp ../sitepackage-14.3.6.tar.gz .
tar -xvzf sitepackage-14.3.6.tar.gz4. Dateien aus dem Archiv in die Composer-Struktur übernehmen
mv sitepackage-14lts/typo3conf/ext/jwsitepackage packages
mkdir -p config/sites
mv sitepackage-14lts/typo3conf/sites/main config/sites/
mv sitepackage-14lts/typo3conf/system config/
mv sitepackage-14lts/.htaccess public
mv sitepackage-14lts/fileadmin publicDiese Befehle verschieben Sitepackage-Extension, Sitekonfiguration, Systemeinstellungen, Assets (fileadmin) und .htaccess aus der klassischen Archiv-Struktur an die von Composer-Installationen erwarteten Stellen.
5. Sitepackage-Extension als Composer-Repository einbinden
In die Datei composer.json muss der bisherige repositories-Eintrag angepasst werden.
Überschreibe in der Datei composer.json im Hauptverzeichnis den Repository-Eintrag mit dem folgenden Abschnitt (verwende die Versionsnummer aus der Datei site-package/packages/jwsitepackage/ext_emconf.php, in unserem Beispiel 14.0.1).
nano composer.jsonBestendend Eintrag, mit folgenden Eintrag ersetzten.
"repositories": {
"packages": {
"type": "path",
"url": "./packages/*",
"options": {
"reference": "none",
"symlink": true,
"versions": {
"jweiland/jwsitepackage": "14.0.1"
}
}
}
}6. Demo-Daten übernehmen
mv sitepackage-14lts/typo3conf/sitepackage.sql .
mysql -h db.mariadb1011 -u bspuser -p bspdatenbank < sitepackage.sqlDiese Befehle kopieren das mitgelieferte SQL-Dump ins Projekt-Verzeichnis und importieren es in die zuvor erstellte Projektdatenbank, sodass Seitenbaum und Beispielinhalte des Mustertemplates zur Verfügung stehen.
Im zweiten Befehl (Import-Befehl) müssen der zuvor notierte Datenbankname (bspdatenbank) und Benutzername (bspuser) und nach Aufforderung das Passwort für die Projektdatenbank eingeben werden. Falls der Host nicht db.mariadb1011 ist, muss auch dieser angepasst werden.
7. Sitepackage-Extension aktivieren
/opt/alt/php83/usr/bin/php /usr/local/psa/var/modules/composer/composer.phar require jweiland/jwsitepackage:^14.0.1Fordert jweiland/jwsitepackage als reguläre Composer-Abhängigkeit an. Da in Schritt 5 bereits ein Path-Repository für packages/* hinterlegt wurde, löst Composer diese Anforderung nicht über Packagist, sondern direkt über das lokale, per Symlink eingebundene Paket in packages/jwsitepackage auf und trägt es in composer.json unter require ein.
8. Basis-URL der Sitekonfiguration anpassen
Die aus dem Mustertemplate übernommene config.yaml enthält unter base: zunächst noch die Domain des Original-Projekts. Diese muss geändert werden, in die Domäne, die du für dieses Projekt angelegt hast.
nano config/sites/main/config.yaml9. Datenbankverbindung eintragen
In die Settings-Datei müssen jetzt noch die Verbindungsdaten der Datenbank eingetragen werden, die für das Projekt erstellt wurde.
nano config/system/settings.phpDer Eintrag sollte dann in etwa so aussehen:
'DB' => [
'Connections' => [
'Default' => [
'charset' => 'utf8',
'dbname' => ‘bspdatenbank’,
'defaultTableOptions' => [
'collation' => 'utf8mb4_unicode_ci',
],
'driver' => 'mysqli',
'host' => 'db.mariadb1011',
'password' => 'bsppasswort',
'port' => '3306',
'user' => 'bspuser',
],
],
],
10. Backend aufrufen und einloggen
Jetzt das Projekt im Browser aufrufen unter der Projekt-Domäne <Projekt-Domäne>/typo3/. Das Start-Passwort findest du unter dem Abschnitt Das TYPO3 Template selbst installieren auf der Seite TYPO3 Template Version 14. Aus Sicherheitsgründen solltest du das Passwort direkt nach dem Einloggen ändern!
11. Sprachdateien laden
Damit das Backend in deutsch angezeigt werden kann, wähle das Modul “System” → “Maintenance”. Nun muss man nochmal das Passwort eingeben. Dann “Manage Language Packs”. auswählen. Klicke auf “Update all”. Und lade die Seite neu.
12. Installation abschließen: Verzeichnisrechte korrigieren und Cache leeren
Wähle das Modul “System” → “Umgebung” und klicke auf “Directory Status…”. Scrolle nach unten und klicke den “Try to fix file and folder permissions” Button.
Im Modul “System” → “Wartung” klicke jetzt bitte noch auf “Flush TYPO3 and PHP Cache”. Die Installation des Templates für TYPO3 mit Composer ist nun fertig eingerichtet.
Das Template für TYPO3 in einer Composer-Installation mit DDEV nutzen
Vorraussetzungen:
- DDEV
- Leeres Projekt-Verzeichnis z.B. composertemplate14
1. DDEV-Projekt initialisieren und TYPO3-Basis anlegen
Diese Befehle im leeren Projektverzeichnis ausführen:
ddev config --project-type=typo3 --docroot=public --php-version 8.2 --webserver-type 'apache-fpm'
ddev composer create-project --no-install "typo3/cms-base-distribution:^14.3"Sie legen zunächst die DDEV-Projektkonfiguration (`.ddev/config.yaml`) mit Docroot `public`, PHP 8.2 und Apache an. Anschließend wird per `ddev composer create-project` das Grundgerüst der TYPO3-14.3-LTS-Composer-Basisdistribution erzeugt; `--no-install` überspringt dabei zunächst das Herunterladen der Abhängigkeiten, sodass vor dem eigentlichen Install noch Anpassungen an `composer.json` möglich sind.
2. Abhängigkeiten installieren und TYPO3 einrichten
ddev composer install
ddev typo3 setup --server-type=apache --driver=mysqli --host=db --port=3306 --dbname=db --username=db --password=dbcomposer install lädt nun tatsächlich alle in composer.json deklarierten Pakete inklusive TYPO3-Core herunter (vendor/ entsteht). Anschließend richtet ddev typo3 setup TYPO3 nicht-interaktiv per CLI ein (Datenbankverbindung, Schema, Grundkonfiguration); Host, Port und Zugangsdaten (db/db) entsprechen dabei den DDEV-Standardwerten des internen Datenbank-Containers.
Im ddev typo3 setup werden folgende Information abgefragt:
- ein User wird angelegt, aber diese Daten werden später überschrieben, wenn wir die Datenbank des Mustertemplates importieren.
- Name des Projekts
- Ob eine Vorlage installiert werden soll → Nein
- Ob eine einfache Seite angelegt werden soll → Nein
3. Container neu starten
ddev restart4. Erweiterungen für das Mustertemplate nachinstallieren
ddev composer req typo3/cms-indexed-search typo3/cms-redirects jweiland/video-shariff yoast-seo-for-typo3/yoast_seoFolgende TYPO3-Systemerweiterung werden mit diesem Befehl hinzugefügt: typo3/cms-indexed-search für die Volltextsuche, typo3/cms-redirects für Weiterleitungen, jweiland/video-shariff für die DSGVO-konforme Video-Einbindung sowie yoast-seo-for-typo3/yoast_seo für ein SEO-Toolkit (Yoast SEO für TYPO3) für Meta-Angaben und Sitemaps.
Ohne explizite Versionsangabe löst Composer automatisch passende, mit der zuvor gesetzten TYPO3-14.3-Anforderung kompatible Versionen auf.
5. Mustertemplate-Archiv herunterladen und entpacken
Lade die aktuelle Version des TYPO3 Templates herunter (tar.gz Archiv).
Und entpacke sie:
tar -xvzf sitepackage14.tar.gz
6. Dateien aus dem Archiv in die Composer-Struktur übernehmen
mv sitepackage-14lts/typo3conf/ext/jwsitepackage packages
mv sitepackage-14lts/typo3conf/sites/ config
rm -rf config/system
mv sitepackage-14lts/typo3conf/system config/
mv sitepackage-14lts/.htaccess public
rm -rf public/fileadmin
mv sitepackage-14lts/fileadmin public
ddev restartVerschiebt Sitepackage-Extension, Sitekonfiguration, Systemeinstellungen, Assets (fileadmin) und .htaccess aus dem klassischen Archiv-Layout an die von Composer-Installationen erwarteten Stellen. Nach dem Löschen von public/fileadmin und dem Verschieben des fileadmin-Ordners muss ein ddev restart erfolgen, damit DDEV die Position der Dateien aktualisiert.
7. Sitepackage-Extension als Composer-Repository einbinden
In der Datei composer.json muss der bisherige repositories-Eintrag angepasst werden.
Überschreibe in der Datei composer.json im Hauptverzeichnis den Repository-Eintrag mit dem folgenden Abschnitt (verwende die Versionsnummer aus der Datei site-package/packages/jwsitepackage/ext_emconf.php, in unserem Beispiel 14.0.1).
nano composer.jsonBestehenden Eintrag durch folgenden Eintrag ersetzten:
"repositories": {
"packages": {
"type": "path",
"url": "./packages/*",
"options": {
"reference": "none",
"symlink": true,
"versions": {
"jweiland/jwsitepackage": "14.0.1"
}
}
}
}8. Demo-Daten übernehmen
mv sitepackage-14lts/typo3conf/sitepackage.sql .
ddev import-db --file=sitepackage.sqlKopiert das mitgelieferte SQL-Dump ins Projekt-Root und importiert es in die Projektdatenbank, sodass Seitenbaum und Beispielinhalte des Mustertemplates zur Verfügung stehen.
9. Lokale Sitepackage-Extension aktivieren
ddev composer req jweiland/jwsitepackage:^14.0.1Fordert jweiland/jwsitepackage als reguläre Composer-Abhängigkeit an. Da in Schritt 7 bereits ein Path-Repository für packages/* hinterlegt wurde, löst Composer diese Anforderung nicht über Packagist, sondern direkt über das lokale, per Symlink eingebundene Paket in packages/jwsitepackage auf und trägt es in composer.json unter require ein.
10. Basis-URL der Sitekonfiguration anpassen
ddev statusDie aus dem Mustertemplate übernommene config.yaml enthält unter base: zunächst noch die Domain des Original-Projekts. Mit ddev status wird die für dieses Projekt tatsächlich generierte *.ddev.site-Adresse ermittelt.
nano config/sites/main/config.yamlAnschließend per nano-Aufruf die Basis-URL *.ddev.site unter base: in der Datei config.yaml eingetragen, damit interne Links, Assets und die Sprachvarianten korrekt auf die lokale Instanz verweisen.
11. Backend aufrufen und einloggen
ddev launch typo3Logge dich mit den Standard-Zugangsdaten des Templates im Backend ein und ändere deine Zugangsdaten!
12. Sprachdateien laden
Damit das Backend in deutsch angezeigt werden kann, wähle das Modul “System” → “Maintenance” und dann “Manage Language Packs”. Klicke auf “Update all”. und lade die Seite neu.
13. Installation abschließen: Verzeichnisrechte korrigieren und Cache leeren
Wähle das Modul “System” → “Umgebung” und klicke auf “Directory Status…” Scrolle nach unten und klicke den “Try to fix file and folder permissions” Button.
Im Modul “System” → “Wartung” klicke jetzt bitte noch auf “Flush TYPO3 and PHP Cache”. Die Installation des Templates für TYPO3 mit Composer und DDEV ist nun fertig eingerichtet.