Uncaught exception with 'DB connection error' on line 18

XAMPP und Firebird

Ich war eigentlich zufrieden mit der alten XAMPP-Installation, Version 1.7.3, allerdings nur bis zu einem gewissen Punkt. Ich wollte mit Netbeans ein php-Projekt debuggen. Schön und gut, xdebug muß in der php.ini enabled werden, das sollte es gewesen sein. Eine Suchmaschinensuche brachte die richtige Lösung. Ich konnte unter Netbeans debuggen. Aber, wie sollte es auch sein, wurden die Inhalte der Variablen beim debuggen nicht angzeigt. Weiter im Netz gesucht. Irgendwas mit ‚in der Version von php geht das nicht‘ oder ‚der xdebug hat einen bug‘, gefunden. Ist ja toll, ein debugger mit Bug, bevor ich noch länger graue Haare bekam, habe ich den letzten XAMPP V 1.8.0 installiert. Ja super, geht doch, die Inhalte der Variablen werden jetzt angezeigt.

Was der Mist wieder Zeit gekostet hat. Damit war es aber nicht zu Ende. Datenbanktest mit der neuen Version. Hatte die Netbeans-Demo ‚TodoList‘ mit Zugriff auf die MySQL-Datenbank zum Testen genommen. Funktionierte auch alles auf Anhieb. Das ist schon merkwürdig. Da ich auch ein kleiner ‚Fan‘ der Firebird-Datenbank bin, wollte ich einen Test mit dieser hinterher schieben. Ich bin jetzt nicht so der php-Fan, aber man kommt nicht drum herum. Die PHP Data Objects-Erweiterung (PDO) hat es mir dabei angetan. Also die Treiber für Firebird enabled und los geht’s. Ja denkste, Fehler, geht nicht!

Phpinfo zeigt an – nix mit Firebird-Treiber geladen. Jetzt geht die Sucherei schon wieder los. Im Internet nichts gefunden. Habe noch die alte XAMPP-Installation auf einem Rechner gehabt, ausprobiert, und geht natürlich. Dann habe ich den Fehler gefunden. Bei der alten XAMPP Installation waren die Firebird-Treiber von Haus aus dabei, bei der neuen nicht. Wenn man jetzt denkt die fbclient.dll bzw. gds32.dll würde jetzt reichen, der hat sich im Finger geschnitten.

Lösung:
Man kopiere von seiner Firebird-Installation (bin-Verzeichnis) folgende Dateien ins XAMPP-php-Verzeichnis:
fbclient.dll
ib_util.dll
icudt30.dll
icuin30.dll
icuuc30.dll

Zusätzlich noch die fbclient.dll ins Windows\system32-verzeichnis kopiert (Die gds32.dll war schon drin, aber php will die fbclient.dll haben).

Ich habe übrigens den Firebird 2.1, deshalb die ’30‘ bei den ddl’s. Der XAMPP usw. läuft übrigens auf einem Windows 7 Rechner.

Dann wollte ich das Gleiche auf meinem Internet-Server ausprobieren, Debian Squeeze. Mit apt-get alles nötige installiert, also den Firebird 2.1-Super Server. Das Einzige wo ich Hand anlegen mußte war die pdo_firebird.ini unter /etc/php5/conf.d/. Die ist leer gewesen und hat den Eintrag
extension=pdo_firebird.so
bekommen. Danach ein restart des Apache und es läuft…