PHP-Erweiterung BBCode unter MacOSX installieren

Da ich für ein aktuelles Projekt BBCode benötige, wollte ich die PHP-Erweiterung PECL-BBCode installieren und testen. Für diese Erweiterung habe ich mich entschieden, da es sich auf den ersten Blick um eine sehr einfach zu handhabende Erweiterung handelt, die auch gültiges HTML bei falscher Verwendung durch den Benutzer ausgibt.

Da jedoch die automatische Installation per pecl auf dem Mac mit der folgender Meldung fehlschlägt habe ich einen kleinen Patch und eine Installatonsanleitung für diesen bereitgestellt.


/private/tmp/pear/temp/bbcode/lib/bbcode2.c:14:20: error: malloc.h: No such file or directory
make: *** [lib/bbcode2.lo] Error 1
ERROR: `make' failed

Das Problem ist, dass sich auf dem Mac die Datei malloc.h in einem anderen Verzeichnis befindet und sich darum die Erweiterung nicht kompilieren lässt. Nun muss uns eine manuelle Installation über dieses Problem hinweghelfen. Zeilen mit einem „$“ am Anfang weisen auf Befehle im Terminal hin, die so eingegeben werden müssen.

$ pecl download bbcode
$ tar -xvf bbcode-1.0.0.tgz
$ cd bbcode-1.0.0

Folgende Zeilen in eine Datei bbcode2.c.patch schreiben und in das Verzeichnis bbcode-1.0.0 speichern, dass wir gerade entpackt haben.

Achtung! Der abgedruckte Code entspricht nicht ganz dem Original, da es ein paar Änderungen durch WordPress gibt. Bitte verwendet in jedem Fall die downloadbare Datei unter dem Code.


--- lib/bbcode2.c 2008-02-11 12:36:04.000000000 +0100
+++ lib/bbcode2.c 2008-06-19 21:16:39.000000000 +0200
@@ -11,7 +11,11 @@
*/
#include <stdlib.h>
#include <stdio.h>
+#ifdef __APPLE__
+#include <sys/malloc.h>
+#else
#include <malloc.h>
+#endif
#include "bbcode2.h"
#include "bstrlib.h"

Natürlich kannst du bbcode2.c.patch auch einfach bei mir downloaden.

$ patch -p0 < bbcode2.c.patch
$ phpize
$ ./configure
$ make

Nun muss noch die Datei modules/bbcode.so in das Erweiterungsverzeichnis das in der php.ini steht kopiert und per extension=bbcode.so eingebunden werden. Nach einem Neustart des Werbservers (z.B. Apache) ist ein Eintrag in der phpinfo enthalten, der auf eine Erfolgreiche Installation hinweist.

Eine Anleitung für die Verwendung der PHP-Erweiterung „BBCode“ ist unter http://www.php.net/bbcode zu finden.