![]() |
[PHP/Firebird] Zugriff
Hallo PHP Experten,
wie kann ich unter Linux mit PHP auf eine Firebird Datenbank zugreifen? |
Re: [PHP/Firebird] Zugriff
hallo spocky,
aktuallisiere bitte deine delphiversion :mrgreen: schon mal in den newsgroups nachgeschaut? da sollte auf jeden fall was zu finden sein. ausserdem mal im entwicklerforum schauen. ein neidischer raik edit// noch diesen link gefunden, weis aber nicht ob der mit linux geht edit2 : ich muss natürlich auch noch den link dazu geben :wall: ![]() |
Re: [PHP/Firebird] Zugriff
Hallo kiar,
ich warte erst noch, bis ich die neue SW erfolgreich installiert habe, bevor ich meine Version anpasse. :hello: Der Link hat mir noch nicht weitergeholfen. Habe natürlich vorher schon gesucht und an einigen Stellen die Aussage gefunden, dass PHP ab Version 4 den Firebird Support schon eingebaut hat. Außerdem habe ich ![]() Ich habe aber auch gelesen, dass ich eine ".inc" oder ".php" Datei bräuchte, die die Interbase Funktionen zur Verfügung stellt und die finde ich nicht. |
Re: [PHP/Firebird] Zugriff
|
Re: [PHP/Firebird] Zugriff
Zitat:
Zu deiner Frage, wenn du schon mal mit PHP und MySQL gearbeitet hast, ists ganz einfach. Lediglich in deinen Befehlen das MySQL durch ibase austauschen (ibase_Connect etc.). Wenn du Glück hast, klappts sofort, wenn nicht, musst du in deiner .conf Datei noch das Interbase Modul laden... Einfach mal nach Interbase drin suchen, und das Semicolon vor der Zeile entfernen, und den Apache neu starten. |
Re: [PHP/Firebird] Zugriff
In den meisten Linux-Distributionen, wie z.b. SuSE ist PHP ohne Firebird Support dabei. Um nun PHP mit Firebird zum Laufen zu bekommen mache ich es bisher immer so das ich weder Apache noch PHP mitinstalliere.
Wir brauchen nun folgende Zustaten für unsere Installation: 1.) Apache Quellcode ( ![]() 2.) PHP Quellcode ( ![]() Als erstes entpacken wir den Apache Quellcode und compilieren uns den Webserver: Zitat:
Zitat:
Handler zu registrieren: Zitat:
Der Apache mit PHP- und Firebird Support kann nun gestartet werden: /usr/local/httpd/bin/apachectl start Gruß, Marcel |
Re: [PHP/Firebird] Zugriff
Hallo Marcel,
ich habe bereits XAMPP 1.1.4 installiert und möchte natürlich nicht alles wieder runterwerfen. Welche Einstellungen muss ich denn nachträglich in der php.ini ändern, damit ich auf firebird zugreifen kann? @Jelly: Funktioniert leider nicht. Der Aufruf:
Code:
wird mit der Meldung:
<?php
$host = 'localhost:/opt/firebird/examples/employee.fdb'; $username='SYSDBA'; $password='masterkey'; $dbh = ibase_connect ( $host, $username, $password ) or die ("error in db connect"); Zitat:
|
Re: [PHP/Firebird] Zugriff
Hallo,
eine Zeile mit: extension=interbase.so sollte reichen wenn das interbase Modul dabei ist (ist so üblich). Dein Skript kann das auch selber laden mit der dl Funktion. |
Re: [PHP/Firebird] Zugriff
Hallo fiasko,
ich hatte bereits eine Zeile: extension=php_interbase.so und habe jetzt noch einmal deine Zeile extension=interbase.so hinzugefügt. Ich habe aber weder eine Datei php_interbase.so noch eine Datei interbase.so in meinem /opt/lampp Verzeichnis!? By the way: Wenn ich Änderungen an der php.ini mache, muss ich dann php neu starten und falls ja, wie geht das am einfachsten? |
Re: [PHP/Firebird] Zugriff
Hallo,
meine Zeile ist auch für eine Debian GNU/Linux Sarge Installation... so viel anders kann das bei lampp auch nicht sein... Zitat:
Da ich xampp nicht verwende kann ich dir da leider auch nicht weiterhelfen :-( Zitat:
|
Re: [PHP/Firebird] Zugriff
Zitat:
Falls dies bei Dir nicht der Fall ist muß PHP neu kompilierert werden, siehe mein Beitrag oben. Du kannst das das configure Script mit dem Parameter --help aufrufen, um alle möglichen Parameter angezeigt zu bekommen. Für Dich dürfte der Parameter --with-interbase=/opt/firebird interessant sein. Gruß, Marcel |
Re: [PHP/Firebird] Zugriff
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Marcel,
das hab ich schon befürchtet. Ich habe jetzt die Sourcen von php 4.3.10 (wäre php 5 sinnvoller?). Dann habe ich mir mal angeschaut, wie XAMPP PHP configuriert hat und habe einen entsprechenden configure Befehl generiert, bei dem ich /opt/interbase durch /opt/firebird ersetzt habe. Der Configure Befehl sieht dann so aus: Zitat:
|
Re: [PHP/Firebird] Zugriff
Laut Deinem Screenshot ist PHP mit Interbase Support compiliert worden. Wahrscheinlich fehlt nur der Zugriff auf die Shared Library.
Schau mal nach, ob Du unter /usr/lib den Link libgds.so auf /opt/firebird/lib/libfbclient.so hast. Falls nicht leg mal einen an und starte den Webserver dann einmal neu. Es schadet auch nicht /opt/firebird/bin in den Suchpfad aufzunehmen, z.b. über /etc/profile. Gruß, Marcel |
Re: [PHP/Firebird] Zugriff
Hallo Marcel,
der Link libgds.so existiert, aber er zeigt auf /opt/firebird/lib/libfbembed.so. Den Pfad habe ich mal hinzugefügt. [zusatz] Habe den Link einmal umgebogen. Hat aber auch nicht funktioniert. Im ursprünglichen configure wurde interbase ja mit dem Pfad /opt/interbase konfiguriert. Ich benötige aber /opt/firebird. Wo muss ich diesen Pfad denn manuell umstellen? [/zusatz] |
Re: [PHP/Firebird] Zugriff
Änder mal den Link, so verwendest Du ja nur den Embedded Server und kannst nur auf lokale Dateien zugreifen. Damit dürfte folgender Code aus Deinem PHP Skript auch nicht funktionieren:
Code:
Gruß,
$host = 'localhost:/opt/firebird/examples/employee.fdb';
Marcel |
Re: [PHP/Firebird] Zugriff
Hallo Marcel,
ich hatte es gerade noch oben eingefügt, aber es hat sich mit deinem Posting überschnitten. Habe den Link einmal umgebogen. Hat aber auch nicht funktioniert. Im ursprünglichen configure wurde interbase ja mit dem Pfad /opt/interbase konfiguriert. Ich benötige aber /opt/firebird. Wo muss ich diesen Pfad denn manuell umstellen? |
Re: [PHP/Firebird] Zugriff
Zitat:
So sehen bei mir die Links aus:
Code:
Ähm, der Firebird Server läuft auch ;-)
In /usr/lib:
lrwxrwxrwx 1 root root 37 Dec 22 09:57 /usr/lib/libfbclient.so -> ../../opt/firebird/lib/libfbclient.so* lrwxrwxrwx 1 root root 39 Dec 22 09:57 /usr/lib/libfbclient.so.1 -> ../../opt/firebird/lib/libfbclient.so.1* lrwxrwxrwx 1 root root 43 Dec 22 09:57 /usr/lib/libfbclient.so.1.5.1 -> ../../opt/firebird/lib/libfbclient.so.1.5.1* lrwxrwxrwx 1 root root 32 Dec 22 09:57 /usr/lib/libgds.so -> /opt/firebird/lib/libfbclient.so* lrwxrwxrwx 1 root root 32 Dec 22 09:57 /usr/lib/libgds.so.0 -> /opt/firebird/lib/libfbclient.so* In /opt/firebird/lib: lrwxrwxrwx 1 root root 16 Dec 22 09:57 libfbclient.so -> libfbclient.so.1* lrwxrwxrwx 1 root root 20 Dec 22 09:57 libfbclient.so.1 -> libfbclient.so.1.5.1* -r-xr-xr-x 1 firebird firebird 505592 Jul 14 18:33 libfbclient.so.1.5.1* -r-xr-xr-x 1 firebird firebird 3300 Jul 14 18:33 libib_util.so* Gruß, Marcel |
Re: [PHP/Firebird] Zugriff
Hallo Marcel,
Zitat:
Ich habe jetzt auch noch: /usr/lib/libgds.so.0 -> /opt/firebird/lib/libfbclient.so gesetzt. Der Link hat auch noch auf die embedded Lib gezeigt.Alle anderen Links verweisen auf dieselben Verzeichnisse wie bei dir. Leider funktioniert das alles nicht. Ich habe aber wie gesagt keine interbase.so oder php_interbase.so auf meinem Rechner. Muss ich denn tatsächlich in der php.ini die extension für interbase aktivieren? Ich habe einmal alle libs durchsucht und in der Bibliothek libphp4.so kommt zumindest der String "interbase" vor. Das könnte ja heißen, dass interbase dort integriert ist und deshalb die Extension nicht aktiviert werden muss!? Hast du noch eine Idee, was ich mal testen könnte? |
Re: [PHP/Firebird] Zugriff
Zitat:
Code:
Und schreib dann nochmal welche Fehlermeldung Du jetzt bekommst.
<?php
$conn = ibase_connect('127.0.0.1:/opt/firebird/examples/employee.fdb','SYSDBA','masterkey','ISO8859_1',0,3); $result = ibase_query($conn,'select * from country'); while($row = ibase_fetch_object($result)) { echo $row->COUNTRY."\n"; } ibase_close($conn); ?> Gruß, Marcel |
Re: [PHP/Firebird] Zugriff
Hallo Marcel,
die Fehlermeldung ist auch so dieselbe: Zitat:
|
Re: [PHP/Firebird] Zugriff
Sooo, ich hab nun scheinbar die Lösung für Dein Problem gefunden. Dein PHP Modul wurde mit einem Firebird oder Interbase Classic Server compiliert. Dieser verwendet andere Shared Libraries als der Superserver. Wenn Du nun einen Firebird Superserver verwendest passt das nicht mehr zusammen, weil dort andere Shared Libraries verwendet werden. Daher auch die Fehlermeldung "No such file or directory".
Du musst scheinbar doch PHP neu compilieren. Gruß, Marcel |
Re: [PHP/Firebird] Zugriff
Hallo Marcel,
danke erst einmal. Werde das am Wochenende versuchen und mich dann noch einmal melden. |
Re: [PHP/Firebird] Zugriff
Hallo,
zu Bibliotheken: mit ldd <binary> bekommst du angezeigt welche Bibliotheken ein Programm oder eine Bibliothek verwenden will und welche realen Dateien verwendet werden: Zitat:
|
Re: [PHP/Firebird] Zugriff
Ich habe jetzt den Apache Server neu installiert und PHP ebenfalls. Hat soweit alles funktioniert. Jetzt wird aber bei Eingabe von localhost noch immer "XAMPP gestartet".
Es sieht so aus, als ob XAMPP den Apache 2 Server installiert hat. Dieser wird in /etc/init.d gestartet. Ich denke ich muss das Starten verhindert und stattdessen irgendwie automatisch den neu installierten Apache 1.3.3 Server starten, oder? Wie muss ich das machen? |
Yippiiih, es funktioniert
Hallo Marcel,
da es nicht funktioniert hat und ich auch auf XAMPP nicht verzichten wollte, habe ich jetzt die neueste XAMPP Version mit PHP 5.0.3 und dem Apache Server 2 runtergeladen, einschließlich der Sourcen. Mit Hilfe des XAMPP Forums habe ich es jetzt geschafft! Super, ich kann jetzt auf Firebird 1.5 unter Linux mit XAMPP und PHP 5 zugreifen. Danke an alle, die mir geholfen haben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz