Zum Inhalt springen

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.gz

4. 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 public

Diese 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.json

Bestendend 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.sql

Diese 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.1

Fordert 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.yaml

9. 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.php

Der 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=db

composer 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 restart

4. Erweiterungen für das Mustertemplate nachinstallieren

ddev composer req typo3/cms-indexed-search typo3/cms-redirects jweiland/video-shariff yoast-seo-for-typo3/yoast_seo

Folgende 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 restart

Verschiebt 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.json

Bestehenden 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.sql

Kopiert 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.1

Fordert 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 status

Die 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.yaml

Anschließ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 typo3

Logge 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.

Aktualisiert: 21.08.2026