Typo3, Strato als Provider und die Updatementalität

Eigentlich sollte das Unterfangen recht einfach sein: Abends im Hotel wollte ich meine Freizeit nutzen, um meine betagte Typo3-Infrastruktur auf die aktuellste Form anzuheben. Das stellte sich allerdings ein wenig Umständlicher heraus als zunächst erwartet…

Der ein wenig in die Jahre gekommene Stand wies dabei die Versionsnummer 7.1.0 auf – eine kurze Recherche via typo.org zeigt diese als bereits mehrfach überholt an und wies auch gleich mehrere Versionen als Updatemöglichkeiten auf. Also flux die zur Zeit aktuellste Version 7.6.10 geladen, auf den Server kopiert und – *boom* – Error 500 im Frontend, Backend und auch im Install-Tool…

Nach einigen Kopieraktionen und Experimenten mit unterschiedlichsten Versionsständen war dann die Version 7.4.0 ein Treffer. Zwar erzeugte auch hier zunächst das Frontend und Backend einen Fehler 500, allerdings ließ sich diesmal das Install-Tool ansprechen und die Grundkonfiguration durchführen. Anschließend standen dann auch Frontend und Backend zur Verfügung. Da die Funktion ‚Core Update‘ allerdings stets auf die aktuellste Version (7.6.10) aktualisieren wollte, musste ich hier einige Schritte manuell ausführen:

Teil 1: Aktualisierung auf Version 7.4.0

Zunächst habe ich mir über das Download-Portal von typo3.org die ZIP-Datei der Version 7.4.0 besorgt, diese lokal auf meinem Rechner extrahiert und anschließend via FTP in das Verzeichnis ‚typo3_src-7.4.0‘ des Strato-Servers kopiert. Eine Anleitung für den Strato-FTP-Zugang findet sich hier (Stand: August 2016). Die offizielle Typo3-Dokumentation sieht hier den Download serverseitig vor. Da mein Provider Strato – entgegen der Empfehlung der Dokumentation – den Download der ZIP-Datei nicht in das Verzeichnis oberhalb von ‚htdocs‘ unterstützt, habe ich diesen alternativen Weg gewählt.

Anschließend habe ich mit Hilfe von Putty via SSH auf meine Website zugegriffen – für Strato befindet sich eine entsprechende Anleitung hier (Stand: August 2016). Nach der Anmeldung wollte ich zunächst meine bestehenden Symbolischen Verknüpfungen (Simlinks) der bisherigen Installation entfernen (teilweise unnötig, ich wollte nur auf Nummer sicher gehen). Dazu habe ich mir diese zunächst via  find . -type l -ls  aufgelistet und wie empfohlen drei Simlinks gefunden:

  • typo3_src zeigt auf typo3_src-7.1.0
  • typo3 zeigt auf typo3_src/typo3
  • index.php zeigt auf typo3/index.php

Diese wurden dann individuell mit dem Befehl  rm  entfernt:

rm index.php
rm typo3
rm typo3_src

Im Anschluss habe ich die Simlinks dann entsprechend meiner neuen Dateistruktur mit Hilfe von  ln  neu erstellt – wie gesagt: das Entfernen und Erstellen des Simlinks für typo3_src hätte gereicht, ich wollte in dieser Situation nur sicher gehen:

ln -s typo3_src-7.4.0 typo3_src
ln -s typo3_src/typo3 typo3
ln -s typo3_src/index.php index.php

Last not least habe ich anschließend die Datei ‚_.htaccess‘ aus dem Verzeichnis ‚typo3_src‘ in das Root-Verzeichnis kopiert und in ‚.htaccess‘ umbenannt:

cp typo3_src/_.htaccess .htaccess

In dieser Konfiguration ließ sich nun das Install-Tool via http://{websitename}/typo3/install öffnen und die bestehende Website aktualisieren. Anschließend war nach kurzer Zeit auch wieder das Front- und Backend wie gewohnt ansprechbar.

Kleiner Wehrmutstropfen: nach der Installation und Konfiguration lief auf einmal das Typo3-Log mit Fehlern voll. Hier gab es im Minutentakt Einträge zu PHP-Ausnahmen in der Erweiterung ‚fluidcontent‘. Nach ein paar Versuchen stellte sich die seitens Strato eingestellte PHP-Version als Ursache heraus: diese Stand auf PHP-Version 7, nach Umstellung zurück auf die Version 5.6 war der Fehler auch erledigt und das System lief erst einmal rund…

Teil 2: Aktualisierung auf Version 7.6.10

Anschließend habe ich der Funktion Core Update eine neue Chance gegeben. Erneut wurde die Version 7.6.10 als empfohlene Update-Version vorgeschlagen, dann automatisch heruntergeladen und in das Verzeichnis ‚typo3_src-7.6.10‘ parallel zum Verzeichnis ‚typo3_src-7.4.0‘ extrahiert. Nur die Umstellung des Symlink ‚typo3_src‘ wurde nicht ordentlich durchgeführt, sodass ich hier manuell korrigieren musste:

rm typo3_src
ln -s typo3_src-7.6.10 typo3_src

Danach habe ich erneut die Datei ‚.htaccess‘ im Verzeichnis ‚htdocs‘ gegen die aktuellere Variante ausgetauscht:

cp typo3_src/_.htaccess .htaccess

Ergebnis: wieder ein Error 500 in Front- und Backend, sowie im Install-Tool…

Eine etwas umfangreichere Internet-Suche zu diesem Phänomen zeigte dann eine interessante Konstellation von Typo3-Installationen im Zusammenhang mit einigen Sharehosting-Dienstleistern, u.a. Strato. Eine dabei recht häufig auftauchende Empfehlung ist in diesem Zusammenhang die Bearbeitung der Datei ‚.htaccess‘ im Stammverzeichnis und / oder im Verzeichnis ‚typo3‘. Nach einigen Versuchen in verschiedenen Konstellationen brachte folgendes Vorgehen den gewünschten Erfolg:

In der Datei ‚.htaccess‘ im Verzeichnis ‚typo3‘ musste ich den Eintrag  RewriteOptions inherit  auskommentieren.

  • RewriteOptions inherit wird zu # RewriteOptions inherit

Nach einigen Sekunden Bedenkzeit war nun der Zugriff auf das Install-Tool gegeben und ich konnte die Aktualisierung der Installation vornehmen. Im Anschluss war direkt der Zugriff auf das Front- und Backend möglich.

Einige Zeit später tauchten auch hier wieder Fehler im Typo3-Log auf: ‚PHP always_populate_raw_post_data is deprecatet‘. Die erste Empfehlung ist hier eine direkte Bearbeitung der Datei ‚php.ini‘ – dies musste ich allerdings nicht ausprobieren. Ich habe zunächst testweise über die Strato-Verwaltung die PHP-Version von 5.6 auf 7.0 angehoben und sofort war der Fehler verschwunden. Seit diesem Schritt läuft die Typo3-Installation fehlerfrei.

Es bleibt anzunehmen, dass durch die direkte Bearbeitung der Datei ‚.htaccess‘ im Verzeichnis ‚typo3‘ nach der ursprünglichen Core Update-Phase der Zwischenschritt mit der Version 7.4.0 wahrscheinlich vermeidbar gewesen wäre. Da ich diesen Weg jedoch nicht ausprobiert habe, kann ich dies nicht mit Sicherheit behaupten. So bin ich derzeit nur froh eine funktionierende und versionsaktuelle Website zu besitzen…

Teil 3: Aktualisierung auf Version 8.3.0 (Nachtrag: 11.09.2016)

Nach einem Monat Pause wollte ich nun den nächsten Schritt wagen und die Typo3-Umgebung auf Versionsnummer 8.3.0 aktualisieren. Dazu habe ich mir zunächst wieder einmal die ZIP-Datei via typo3.org besorgt und diese wiederum lokal extrahiert und via FTP in das Verzeichnis ‚typo3_src-8.3.0‘ kopiert. Danach habe ich mit Hilfe von Putty via SSH eine Verbindung aufgebaut und die Simlinks kontrolliert:

find . -type l -ls

Hier fanden sich die drei zu erwartenden Verknüpfungen:

  • typo3_src zeigt auf typo3_src-7.6.10
  • typo3 zeigt auf typo3_src/typo3
  • index.php zeigt auf typo3/index.php

Also einmal die bestehende Verknüpfung für ‚typo3_src‘ entfernen und anschließend mit dem Verzeichnis ‚typo3_src-8.3.0‘ neu verbinden. Dann noch die Datei ‚_.htaccess‘ aus dem dann aktuellen Verzeichnis ‚typo3_src‘ als ‚.htaccess‘ in das Root-Verzeichnis kopieren:

rm typo3_src
ln -s typo3_src-8.3.0 typo3_src
cp typo3_src/_.htaccess .htaccess

Und wieder schlug der bekannte Fehler (s.o.) zu…

Auch hier galt es wieder die Datei ‚.htaccess‘ im Verzeichnis ‚typo3‘ zu bearbeiten und den Eintrag  RewriteOptions inherit  auszukommentieren.

  • RewriteOptions inherit wird zu # RewriteOptions inherit

Anschließend stand via ‚http://{websitename}/typo3/install‘ das Install-Tool zur Verfügung. Allerdings musste ich – wie üblich – vorher noch eine Datei ‚ENABLE_INSTALL_TOOL‘ im Verzeichnis ‚.\typo3conf‘ bereitstellen.

Lokal unter Windows ging dies via PowerShell recht unkompliziert und anschließend konnte ich diese Datei via FTP im entsprechenden Verzeichnis des Webservers ablegen:

New-Item -ItemType File -Name 'ENABLE_INSTALL_TOOL'

Nun konnte ich die Aktualisierung abschließen und wieder auf Frontend und Backend in Typo3-Version 8.3.0 zugreifen. Allerdings trübte noch eine kleine Fehlermeldung die Installation:

Checking database character set failed, got key "latin1" instead of "utf8" or "utf8mb4"

Nach kurzer Suche in der Strato-MySQL-Verwaltung (Server | Datenbank| Operationen) zeigte sich zwar der Datenbankserver bereits auf ‚utf8mb4‘ konfiguriert, allerdings wurde die Datenbank noch in der Sortierung ‚latin1‘ geführt. Eine kurze Aktualisierung hier und der Fehler war umgehend verschwunden…

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.