Archiv der Kategorie ‘Typo3’

Typo3 und PHP 5.2.4: Leerer BODY in HTML, Empty BODY-Tag


Nach dem Update auf PHP 5.2.4 geben Typo3-Installationen im Frontend nur noch Seiten aus, bei denen zwischen den Body-Tags kein Inhalt mehr steht. Das Backend funktioniert allerdings und die restlichen Angaben (Titel, Meta-Tags, usw.) werden auch ausgegeben.

Nach langer Suche bin ich auf dieses Problem und die Lösung dazu gestoßen.


Typo3 Debugging / Logging aktivieren


Zuerst sollte man sicherstellen, dass das Protokollieren von Fehlern von PHP generell richtig eingestellt ist (Hinweise: richtige php.ini, error_reporting).

Dann lassen sich folgende Optionen in der localconf.php setzen, um möglichst alle Fehlermeldungen in Typo3 einzuschalten:
$GLOBALS['TYPO3_DB']->debugOutput = true;
$TYPO3_CONF_VARS['SYS']['displayErrors'] = '1';
$TYPO3_CONF_VARS['SYS']['sqlDebug'] = '1';
$TYPO3_CONF_VARS['FE']['debug'] = '1';

Wenn das Backend generell funktioniert, kann man noch das Admin-Panel aktivieren über Template:Setup:
config.admPanel = 1

Um eine defekte Datenbank-Tabelle zu finden kann man das MySQL-Query-Log einschalten und durchschauen oder auch einfach bei MyISAM-Tabellen diese prüfen:
find /var/lib/mysql/ -name '*.MYI*' -exec myisamchk {} \;


Datumsangaben auf Deutsch bzw. in der Landessprache


Um Datumsangaben (sowie weitere Formatierungen, Vergleiche usw.) in der Landessprache auszugeben bzw. zu verarbeiten, müssen die folgenden Punkte stimmen:

  • es müssen die passendes Locales installiert und generiert sein (d.h. sie müssen in der Ausgabe von locale -a erscheinen)
  • eine dieser Locales muss mit config.locale_all oder page.config.locale_all in Typo3 konfiguriert werden

Um die Locales z.B. unter Ubuntu zu generieren, müssen die Pakete locales und localconf installiert sein. Anschliessend müssen die zu erzeugenden Locales in die Datei /var/lib/locales/supported.d/de in der folgenden Form eingetragen werden:

de_DE.UTF-8 UTF-8
de_DE@euro ISO-8859-15

Dann kann man die neuen Locales durch dpkg-reconfigure locales erzeugen. Und – falls alls man eine andere Locale-Einstellung vornehmen möchte: dpkg-reconfigure localeconf.

Falls Typo3 z.B. das Datum weiterhin auf Englisch anzeigt liegt das oft daran, dass man z.B. eine stdWrap.date-Funktion verwendet hat. Diese ruft die PHP-Funktion date() auf, welche die Locale-Einstellung nicht beachtet. Stattdessen muss man in PHP strftime() und somit in Typo3 z.B. stdWrap.strftime verwenden:

lib.stdheader.5.date >
lib.stdheader.5.strftime = %e. %B %Y

In PHP wird übrigens mit der Funktion setlocale() festgelegt, welche Locale-Einstellung verwendet wird. Dabei können der Funktion mehrere Möglichkeiten zum Ausprobieren übergeben werden:

$usedLocale = setlocale(LC_ALL, 'de_DE.utf8', 'de_DE@euro', 'de_DE');


ImageMagick langsam


Wer ImageMagick einsetzt, um Bilder umzuwandeln wird bei aktuellen Versionen und manchen Operationen und Parametern feststellen, dass diese extrem lange Zeit beanspruchen. Das liegt zum einen daran, dass der entsprechende Code geändert wurde und außerdem die zuständigen Parameter andere Werte erwarten. Weitere Informationen z.B. hier auf typo3.org. Statt ImageMagick kann man auch das neue GraphicsMagick einsetzen, für das es ein Paket zur Rückwärtskompatibilität zu ImageMagick gibt und das sich ansonsten mit den folgenden beiden Zeilen in der Typo3-Konfiguration (localconf.php) einsetzten läßt:

$TYPO3_CONF_VARS['GFX']['im_path'] = ‘/usr/bin/’; // Pfad zu GraphicsMagick
$TYPO3_CONF_VARS['GFX']['im_version_5'] = ‘gm’;