Drupal 8.5.1 bei 1&1 installieren

Bild des Benutzers admin

Drupal 8 haben wir seit einiger Zeit für ein paar Projekte im Einsatz.
Das lief bislang erfolgreich bei HostEurope Webserver Premium, All-inkl Premium und bei 1&1 Unlimited Pro.
Ich konnte auch jeweils Composer und Drush zum Einsatz bringen.
Nun scheiterte eine frische Installation via Browser bei 1&1 mit folgendem Fehler:

Strict Standards: DateTime::createFromFormat(): We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in
/homepages/12/1234567/htdocs/drupal_8/vendor/symfony/http-foundation
/ResponseHeaderBag.php on line 336

 

Bei drupalcenter.de lese ich, dass das Problem sehr verbreitet ist, deshalb hier eine Zusammenfassung, was geholfen hat.

Dafür wird gemeinhin der Tipp gegeben, im Root der Installation eine php.ini anzulegen und dort einzutragen:

date.timezone=Europe/Berlin

 

Nur bleibt dieser Eintrag leider ohne Wirkung.
Nächste Idee war, die Anzeige des Strict Errors auszuschalten, weil daran die Installation hängen bleibt.

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

 

Leider blieb auch das ohne Wirkung.

Da ich schon mal dabei war, schrieb ich noch diese Zeilen in die php.ini, in der Hoffung, im php-Error-Log noch weiteren Aufschluss zu bekommen:

memory_limit = 512M
log_errors = On
display_errors = Off
error_log = /homepages/12/1234567/htdocs/drupal_8/php-errors.log

 

Das memory_limit muss bei 1&1 sowieso via php.ini hoch gesetzt werden, da zwar beim Paket unlimited pro 512 M als Maximum zur Verfügung stehen, per Default sind aber nur 250MB wirksam.
Nochmaliger Installationsversuch zeigt, dass kein Eintrag in die Datei php-errors.log geschrieben wird.

Irgendwo fand ich den Tipp, die date.timezone in der .htaccess zu ändern.
Da bei 1&1 PHP 7.1 als CGI läuft und nicht als Apache Modul, muss die Schreibweise so sein:

SetEnv TZ Europe/Berlin

 

Zeigt auch keine Wirkung.

Zwischenzeitlich stellte ich noch diverse PHP Versionen ein, um sicher zustellen, dass der Fehler nicht daran liegt.
Das half aber auch nicht.

Irgendwann fand ich den Hinweis, dass man statt php.ini die .user.ini verwenden soll, weil beim Installations-Prozess evt. eine andere PHP-Version (cli) zum Einsatz kommt, auf die die php.ini in der Drupal-root keinen Einfluss hat. Dafür läuft der Prozess unter dem gleichen User, wie im Browser, deshalb greift die .user.ini
Und -tatsächlich-  eine .user.ini mit der Zeile

date.timezone=Europe/Berlin

 

löst das Problem.
Bitte vergesst nicht den führenden Punkt bei .user.ini!

Nun lief also die Installation problemlos durchs.
Die Ernüchterung kam beim Versuch, sich einzuloggen.
Auf Unterseiten gibt es einen Internal Server Error.
Der verschwindet aber, wenn man das Kommentarzeichen bei

RewriteBase /

 

entfernt.

Nun gilt es nur noch bei Updates darauf zu achten, dass man die .htaccess, .php.ini und .user.ini nicht versehentlich löscht oder überschreiben lässt.

Mein Dank geht an die Mitglieder der Facebook-Gruppe für Drupal 8, die mir wichtige Denkanstöße gaben.
Den Tipp mit der user.ini habe ich irgendwo im Netz gefunden.

Das Problem mit date.timezone ist eine Spezialität bei 1&1 und tritt z.B. bei All-inkl nicht auf.


 

Bild: