Installation¶
Die Installation erledigt ein einziges Skript, installer_de_patch.sh. Es
erkennt selbst, ob es ein neues Drupal CMS anlegen oder ein bestehendes
Projekt vorbereiten soll.
Sie brauchen dafür eine Kommandozeile mit PHP, Composer, git und curl, also dieselbe Umgebung wie für Drupal CMS selbst.
Neues Drupal CMS auf Deutsch¶
Führen Sie das Skript in einem leeren Verzeichnis aus:
bash
curl -sSL https://git.drupalcode.org/project/dcgi/-/raw/1.0.x/installer_de_patch.sh | bash
Das Skript lädt Drupal CMS per composer create-project in den Unterordner
cms/ und bereitet den Installer vor. Einen anderen Ordnernamen geben Sie so
an (bei curl | bash ist dafür die Schreibweise -s -- nötig):
bash
curl -sSL https://git.drupalcode.org/project/dcgi/-/raw/1.0.x/installer_de_patch.sh | bash -s -- drupalcms
Rufen Sie danach die Website im Browser auf, wählen Sie Deutsch als Sprache und folgen Sie dem Installer.
Während der Installation nicht neu laden
Laden Sie die Seite nicht neu, solange die Installation läuft. Drupal
kann sonst einen halbfertigen Zustand zwischenspeichern, und die fertige
Website zeigt einen Fehler 500. drush cr behebt das.
Bestehendes Drupal-CMS-Projekt¶
Führen Sie das Skript im Wurzelverzeichnis Ihres Projekts aus, also dort, wo
composer.json und web/ liegen, nicht im Ordner web/ selbst:
bash
curl -sSL https://git.drupalcode.org/project/dcgi/-/raw/1.0.x/installer_de_patch.sh | bash
Das Skript erkennt die vorhandene Installation an
web/profiles/contrib/drupal_cms_installer und bindet den deutschen
Installer direkt dort ein.
Ist die Website schon fertig installiert, hat das keine sichtbare Wirkung:
Der Installer greift nur bei einem (erneuten) Aufruf von core/install.php.
Ob eine Website installiert ist, prüft das Skript mit drush status. Wurde
die Datenbank später geleert (etwa mit drush sql:drop), spielt es den
Installer wieder ein.
Nach der Installation aufräumen¶
Führen Sie das Skript ein zweites Mal im selben Verzeichnis aus, sobald die Installation abgeschlossen ist. Es erkennt das selbst, entfernt den deutschen Installer wieder und setzt den Drupal-CMS-Installer auf den Originalzustand zurück. Auf der fertigen Website wird er ohnehin nicht mehr gebraucht.
Gut zu wissen¶
Kein Eintrag in composer.json. Der Installer wird nicht per
composer require eingebunden, sondern per git clone nach
web/profiles/contrib/drupal_cms_installer_de gelegt. Dort findet Drupal ihn
automatisch. composer.json und composer.lock bleiben dadurch unverändert.
Nur die Zusatzmodule von drupal.org landen regulär in composer.json.
Nach composer update erneut ausführen. Composer führt die Skripte von
Paketen nicht selbst aus. Ein Update von Drupal CMS kann die Anpassungen am
Installer deshalb überschreiben. Führen Sie installer_de_patch.sh dann
einfach noch einmal aus. Jede Anpassung erkennt, ob sie schon angewendet ist.
PHP-Speicher. Der Web-Installer führt jeden Installationsschritt innerhalb
des memory_limit von PHP aus. Die großen Vorlagen (Summit, Varbase, The
Rightup, Educare, Horizon Aid) brauchen mehr als die übliche Voreinstellung
von 128 MB; damit bricht der Installer mittendrin mit einem „AJAX HTTP error“
ab. Setzen Sie memory_limit für PHP-FPM oder Apache auf mindestens 512M und
starten Sie PHP neu. Installationen mit Drush sind nicht betroffen, weil PHP
auf der Kommandozeile kein Limit hat.
Twig 3.30. Twig 3.30.0 (erschienen am 25.09.2026) ist mit Drupal Core
11.4.7 nicht verträglich: Schon die erste Seite der Installation bricht ab mit
EscaperRuntime::escape(): Argument #4 ($autoescape) must be of type bool, null given.
Drupal Core 11.4.8 hat das behoben. Nur bei älterem Core begrenzt das Skript
Twig deshalb automatisch auf eine passende Version. Nach einem Update auf
11.4.8 entfernen Sie die Begrenzung mit composer remove twig/twig.
Einen Branch oder lokalen Klon testen. Die Quelle des Installers lässt sich überschreiben:
bash
INSTALLER_DE_REPO=file:///pfad/zum/klon INSTALLER_DE_BRANCH=mein-branch bash installer_de_patch.sh