Typo3 4.2.8 und PHP5.3 Kompatibilitäts-Patch

Heute hatte ich mal etwas Zeit über, und konnte mich einem weiteren kleinen Problem welches aus dem Upgrade auf PHP5.3 resultiert widmen. Einige Funktionen sind bei PHP5.3 nicht mehr verfügbar, oder werden mit PHP6.0 nicht mehr unterstüzt. Auf der php Webseite gibt es eine Liste aller veralteten Funktionen.

In Typo3 4.3.0alpha3 ist davon zwar Einiges, wenn nicht sogar Alles behoben, im aktuellen Stable 4.2.8 gibt es jedoch eine Menge Probleme, wenn man auf PHP5.3 umstellt. Deshalb hier der von mir erstellte Patch für typo3 4.2.8 mit PHP5.3

typo3-4.2.8-php5.3-compat-patch

Falls jemand wider Erwarten einen Fehler findet und mir mitteilt, so werde ich den neuen Patch ebenfalls hier veröffentlichen.

Einen komplett gepatchten source gibt es hier zum download, da viele User nicht wissen wie man mit patch umgeht:

https://www.netz-guru.de/wp-content/uploads/2009/07/typo3_src-4.2.8-compat-patched-php5.3.tgz

34 thoughts on “Typo3 4.2.8 und PHP5.3 Kompatibilitäts-Patch

  1. Hallo,

    ich möchte den Patch auf einem Server vorsorglich installieren, der bald auf PHP 5.3 umgestellt wird. Ist das Patch abwärtskompatibel, d.h. läuft Typo3 4.2.8 dann auch noch unter PHP 5.2?

    Vielen Dank
    Desiree

  2. hallo florian,
    der patch funktioniert perfekt!!!
    saubere arbeit. danke!

  3. Hallo Florian,

    danke für die info, dachte/hoffte die wär schon drin, da mich das dummy package wegen doppelt vorhandener index.php irritiert hat. Jetzt hat’s funktioniert und läuft auf XAMPP. Bin gespannt 🙂

    Danke
    Marcus

  4. Hi Florian,

    erstmal vielen dank für das patch!
    Leider hab ich ne Anfängerfrage: ich hab dein gepatchtes Paket runtergeladen und in einen ordner in xampp kopiert, aber wenn ich dann die index.php aufruf kommt folgende Meldung:
    Cannot find configuration. This file is probably executed from the wrong location.
    Kannst mich da auf den richtigen Weg bringen, was mach ich falsch?
    Vielen Dank!
    Marcus

  5. Hallo.

    Habe mich vielleicht etwas unverständlich ausgedrückt!

    Bei Version 4.2.9 hatte ich dieselben Probleme wie mit 4.2.8!
    Dachte dass hier von Typo3 Seite her vielleicht schon etwas geändert wurde, was sich aber als ein Irrtum herausstellte.

    Mit der gepatchten Version funktioniert bisweilen alles sehr gut, danke !!

  6. Hallo!

    Ich habe das komplett gepatchte Source-Archiv verwendet. Habe zuerst Typo3 v.4.2.9 installiert (keine Verbesserung zur ungepatchten v.4.2.8) unter PHP v.5.3.

    Danke und weiterhin gutes Gelingen.

    MfG Benjamin

  7. ich hab hier auch ein PHP 5.3 und TYPO3 4.2.8. Die gepachten Sourcen hab ich hochgeladen, Berechtigungen stimmen, an Fehlermeldungen nur date-Warnings und trotzdem leere Seiten (FE und auch BE). Alle Ext sind deaktiviert (ursprüngliche extList von der initialen Installtion).

    Bitte, mir sind die Ideen ausgegangen, kann mir jemand helfen?

    1. wegen den Date-Warnings hilft date_default_timezone_set(“Europe/Berlin”);
      in der localconf.php als erste Zeile. Zu dem Problem mit den weissen Seiten kann ich leider nichts sagen, verwende selbst kein TV.

  8. ach ja, ich vergaß zu erwähnen, dass Florians gepatchtes Typo3 natürlich jetzt einwandfrei funktioniert, klasse!

  9. Mensch Florian, das ist echt super nett 🙂
    Vielen Dank!
    Gruß
    Duffy

  10. Hallo,

    leider habe ich keine Ahnung von Unix und will eigentlich nur Typo3 mit Xampp, das ja momentan mit php 5.3 arbeitet, zum Laufen bringen. Deinen patch kann ich wahrscheinlich auf meiner Windows Kiste gar nicht hernehmen oder? D.h. warten auf ne Typo3 Version, die`s mit php 5.3 kann oder downgraden auf php 5.2.9 oder?

    Gruß
    Duffy

  11. Hallo Florian,

    ich glaube, ich habe auch noch einen Fehler im Patch gefunden, und zwar in typo3/sysext/install/mod/class.tx_install.php in folgender Zeile:

    if (strlen($subdir) && !preg_match(‘^/[[:alnum:]_]+\/$/’,$subdir)) …..

    Ich vermute, dass ^ und / am Anfang der PCRE vertauscht werden müssten.

    Gruß, Ulf.

  12. Hallo und danke für den Patch.
    Leider habe ich immer noch das Problem, dass mein Typo3 4.2.8 mit PHP 5.3.0 nur leere Seiten ausgibt (HEAD ist ok, BODY ist leer). Mit einem identisch compilierten PHP 5.2.9 funktioniert alles. Die error-logs enthalten keine Einträge. Irgendwelche Ideen?
    Danke!

    1. Hast Du mal $TYPO3_CONF_VARS[‘SYS’][‘displayErrors’] = ‘1’; in der localconf.php gesetzt? Kommen dann Fehlermeldungen?

  13. Vielen dank für den Patch.
    Leider hat er mein ursprüngliches Problem mit TemplaVoila nicht gelöst … da werde ich mal ans debuggen gehen

  14. Das war jetzt sehr anfängerfreundlich… 😉
    Nein ich bin kein DAU aber ich habe sowas noch nie gemacht.
    Das Kommando patch -p0 gibt man in der Windows-Konsole ein, richtig? Die Konsole muss man im bin Ordner (da wo die patch.exe ist) ausführen, richtig? Packt man in den bin Ordner auch den Inhalt von typo3_src-4.2.8 ? Deine Patch.txt – Datei müsste aber auch in diesem Kommando vorkommen und nicht nur patch -p0, oder? Sorry aber englisch ist nicht gerade meine Stärke…

  15. Hallo,

    kann jemand einem TYPO3-Anfänger verraten, wie man diesen Patch “installiert”? Das ganze ist eine txt-Datei und was mache ich jetzt damit?

    Danke im Voraus
    Joe-achim

    1. Ja, das ist ein Patch – um diesen einzuspielen lädt man den typo3 4.2.8 source runter, entpackt diesen (normalerweise in typ3_src-4.2.8) und lädt den Patch herunter. Dann patcht man den Source mit patch -p0 http://gnuwin32.sourceforge.net/packages/patch.htm

  16. Hallo

    bitte entschuldige den “Doppelpost”, aber ich arbeite die Seite erstmal durch, und der Fehler viel eben nicht gleich ins Auge 😉

    Zeile 1071:

    list($theField,$palFields) = preg_split(‘\[|\]’,$theFieldC);
    Delimiter:
    list($theField,$palFields) = preg_split(‘/\[|\]/’,$theFieldC);

  17. hi ho,

    danke für deine Mühe 😉
    Habe folgende Fehler gefunden:
    Zeile 639:
    preg_mattch(‘/^insert[[:space:]]*into[[:space:]]*[`]?([[:alnum:]_]*)[`]?/i’,substr($lineContent,0,100),$reg)
    “mattch” -> mit 2 “t”

    Zeile 621:
    if (!trim($statementArray[$statementArrayPointer]) || ($query_regex && !preg_match($query_regex,trim($stateme

    Da fehlen Anfangs und End Delimiter?

    “/” . $query_regex . “/”

    Das ist das, was mir aufgefallen ist 🙂

    MFG
    Timo

Comments are closed.