Typo3- Upgrades und seine Tücken

Heute will ich mal einen kleinen Einblick in die täglichen Probleme geben, mit denen ich mich als Web- Entwickler der heco gmbh rumschlagen darf. Eine meiner permanenten Verantwortlichlichkeiten besteht darin, die technische Infrastruktur unserer Webpräsenz auf einem aktuellen und selbstverständlich lauffähigen Stand zu halten. In diesem Rahmen bin ich in den letzten Wochen her gegangen und habe die Versionen unseres Javascript Frameworks, die PHP- sowie die Typo3- Version auf einen aktuellen Stand gebracht. Die ersten beiden Frameworks sind recht spezifisch, so dass ich darauf nicht eingehen werde, aber bei dem Upgrade der Typo3- Version traten ein paar Ungereimtheiten auf, die für den Ein oder Anderen interessant sein könnten.

t3 softlinks

Abbildung1: Softlinks in Typo3

Typo3 kapselt schon seit einiger Zeit die einzelnen Versionen und Bibliotheken in versionierte Ordner. Somit muss bei einem Upgrade „nur“ auf die neue Version verwiesen werden. Dies geschieht über Softlinks;  im root- Verzeichnis der Typo3- Version müssen die Links typo3_src, typo3 und t3lib auf die entsprechende Quelle gesetzt sein. Abbildung1 verdeutlicht dies.
Zusätzlich empfehlen die Typo3- Entwickler, die index.php im root- Verzeichnis ebenfalls über einen Softlink zu hinterlegen, jedoch führte das in meiner Instanz zu Anzeigefehlern. Daher wurde einfach die index.php aus der neuen PHP- Bibliothek ins root- Verzeichnis kopiert, der tslib- Pfad in dieser Datei korrekt gesetzt und der Softlink auf die neue Installation umgebogen – fertig. Mit dem ersten Schritt.

Der zweite Schritt führt ins Backend von Typo3, hier ist der Installations- Wizard auszuführen. Aber was macht man, wenn sich nicht in das Backend einloggen kann, weil die Eingabefelder für den Login fehlen?

Abbildung2: Nach dem Upgrade fehlen die Eingabefelder

Abbildung2: Nach dem Upgrade fehlen die Eingabefelder

Diese Problematik trat direkt nach den Upgrades auf, die fehlerfrei verliefen, und stellte mich zunächst vor ein Rätsel. Nach einiger Recherche stand allerdings fest: Die Eingabefelder sind nicht deaktiviert, aus irgendwelchen Gründe wurde lediglich die Sichtbarkeit auf deaktiviert gesetzt. Also per Firebug nach der entsprechenden Style- Einstellung gesucht und den Wert korrigiert (<div id=“t3-login-form-fields“ style=“display: none;“>, hier den Wert auf display:block ändern). Und voilá: Man darf sich wieder in sein eigenes Backend einloggen.
Um diesen Vorgang nicht jedes Mal wiederholen zu müssen, bestand der nächste Schritt nun darin, die Erweiterung, die hierfür verantwortlich war, zu entfernen: In meinem Fall das Skin „t3modern_skin“.
Genereller Tip für alle Typo3- Upgrades: Vor dem Upgrade immer zuerst sämtliche Skins deaktivieren!

Abbildung3: Install Tool Wizard

Abbildung3: Install Tool Wizard

Der nächste Schritt besteht aus dem Anpassen sämtlicher Tabellen sowie dem Nachtragen neuer benötigter Tabellen. Glücklicherweise stellt Typo3 hier ein sehr mächtiges Werkzeug zur Verfügung: Das Install Tool, abgebildet in Abbildung3. Mit Hilfe dieses Wizards wird das Anpassen der Versionskompatibilität, das Überarbeiten der PHP- Konfiguration sowie das Anpassen der Datenbank- Tabellen zu einem reinen Durchgeklicke. Anschließend noch nicht mehr benötigte Tabellen gelöscht, gecachte Seiten und temporäre Dateien entfernt – fertig!

Schritt 3 besteht darin, die verwendeten Typo3- Extensions auf den neuesten Stand zu bringen. Auch dies geschieht über das Backend, genauer gesagt über den Extension- Manager. Hier muss man lediglich die aktuelle Extension- Liste einspielen lassen. Anschließend kann man sich anzeigen lassen, für welche verwendeten Extension neue Versionen erschienen sind und diese direkt einspielen. Solange keine Konflikte zwischen den Extensions untereinander (wie in meinem Fall zwischen den Extensions „Cool URI“ und „Simulate Static URLs“) sollte auch dieser Schritt keine allzu große Hürde darstellen.

Fatal Error: Class not found

Fatal Error: Class not found

Eigentlich hätte das bereits der finale Schritt sein und die  Anzeige im Frontend problemlos ablaufen sollen, jedoch wurde mir stattdessen folgende Meldung angezeigt:Jeder PHP- Entwickler weiß natürlich, dass ein Fatal Error immer Ärger bedeutet. Das Kuriose hier war jedoch, warum dieser Fehler auftrat. Denn die Fehlermeldung bedeutete, dass eine meiner selbst geschriebenen Extensions nicht gefunden werden konnte, obwohl deren Existenz zweifelfrei sichergestellt und die Anbindung im Backend ebenfalls korrekt gegeben war. Der Grund, warum sie dennoch nicht geladen werden konnte, lag in diesem Fall beim Autoloader. Typo3 stellt über den Extension Develop Evaluator ein Tool zur Verfügung, das für lokale Extension eine autoload- Datei erstellt, anhand der die Reihenfolge festgelegt wird, in der die Extensions geladen werden. Diese Funktion musste nochmals für sämtliche lokalen Extension durchlaufen werden, um das Problem zu beheben.
Tipp: Wenn der Autoloader benutzt wird, sollte man immer darauf achten, dass die Zuordnung von Extension- Key zur Extension auch korrekt gesetzt wird. In meinem Fall versuchte der Autoloader mehrfach, eine backup- PHP- Datei zu laden, was natürlich zum Scheitern verdammt war.

Im Anschluß mussten noch einige CSS- Anpassungen durchgeführt werden bedingt durch das neue Javascript- Framework, aber seit heute läuft www.heco.de wieder unter einer technischen Infrastruktur, die up-to-date ist.

– Verfasser: Martin Edelmann

Advertisements

Über hecogmbh

Die heco gmbh ist ein Handelshaus sowie ein Produzent für Fittings und Armaturen aus rostfreiem Edelstahl. Unsere Produkte werden im Maschinen-, Anlagen- und Fahrzeugbau sowohl in der chemischen Industrie als auch in der Nahrungsmittelindustrie eingesetzt. Mit mehreren Standorten europaweit sind wir immer in Ihrer Nähe.
Dieser Beitrag wurde unter Martin Edelmann abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s