ETES-Weblog

PHP PCRE-Erweiterung für Contao/TYPOlight

Gepostet am 20. Januar 2009 von Robert Scheck in „Know-How“ Kommentare 0

Robert Scheck

Für die Suchmaschinen-Funktionalität des Contao Open Source CMS (vormals TYPOlight) wird die Unicode-Unterstützung der PCRE-Erweiterung in PHP benötigt. Ist diese Unicode-Unterstützung nicht gegeben, so schlägt eine Suche anschließend mit

Compilation failed: support for \P, \p, and \X has not been compiled

fehl. Bei Red Hat Enterprise Linux 5 und damit bei CentOS 5 ist diese Option standardmäßig nicht aktiviert, da der Einsatz erst in späteren Versionen von PCRE durch die Entwickler empfohlen worden ist. Man kann dieses Problem lösen, indem man PCRE beim Kompilieren um das Parameter --enable-unicode-properties erweitert, sofern PHP dynamisch gegen die PCRE-Bibliothek gelinkt ist (was bei RHEL 5 und CentOS 5 der Fall ist).

Da PCRE gelegentlich Sicherheitslücken aufweist, sollte man die Bibliothek jedoch nicht von Hand kompilieren, da sonst mögliche Sicherheitsupdates von Red Hat dies überschreiben bzw. je nach Pfad bleiben später eventuell die Sicherheitslücken von PCRE aus der eigenen Übersetzung der Bibliothek vorhanden und machen das System leicht verwundbar. Der richtige Weg ist es daher, das RPM-Paket mit der richtigen Option selbst neu zu bauen und auch selbst zu pflegen.

Um dies zu vereinfachen, haben wir unser ETES-Repository mit einem angepassten RPM-Paket der PCRE-Bibliothek erweitert; dort wurde der Parameter --enable-unicode-properties beim Kompilieren verwendet. Diese Aktualisierung ist in unserem ETES-Repository für die für den Unternehmenseinsatz optimierte Linux-Distribution Red Hat Enterprise Linux bzw. CentOS in Version 5 verfügbar.

Aktiviert wird das ETES-Repository durch die Installation des RPM-Pakets etes-release (rpm -Uvh etes-release-version.arch.rpm), welches sich im entsprechenden Unterverzeichnis, also z.B. /centos/5/i386/ für CentOS 5 mit 32 Bit oder /centos/5/x86_64/ für CentOS 5 mit 64 Bit, der oben angegebenen Adresse findet. Da sich die Paketnamen ändern können, ist hier bewusst keine direkte URL zu den RPM-Paketen verlinkt. Ist das ETES-Repository aktiviert, funktioniert die Aktualisierung wie folgt:

yum update pcre
service httpd restart

Der Neustart des Apache Webservers wird benötigt, damit die PHP-Umgebung mit den zugehörigen Bibliotheken neu in den Speicher geladen wird. Anschließend kann die Suchmaschinen-Funktionalität von Contao (vormals TYPOlight) ohne Fehlermeldungen verwendet werden.

Red Hat behandelt dieses Problem aktuell im Bugreport 457064 und schätzt, dass dieses Problem möglicherweise für Red Hat Enterprise Linux 5.4 (und damit auch CentOS 5.4) beseitigt werden kann...

Tags dieses Beitrages: CentOS, Contao, PHP, RHEL
Trackback-URL: https://www.etes.de/system/modules/trackback/trackback.php?id=2531

Einen Kommentar schreiben

Bitte addieren Sie 9 und 1.