PHP mit Oracle
am 05.06.2006 20:13:00 von Abalorio
Hi NG,
ich habe da mal eine schwere Frage an der ich seit ca. 2 Wochen knabere.
Also ich will einen Server mit PHP dazu bringen eine externe Datenbank auf
der Oracle läuft abzufragen.
Nun habe ich gelesen, dass ich dafür Oracle 10 installieren muss und
anschließend PHP mit oci8 compilieren. Richtig?!
Das habe ich schon einmal versucht und mir dabei den Server zerschossen. Nun
muss ich diesen erstmal zurücksetzen lassen und dann versuche ich es erneut.
Wie sind eure Erfahrungen!!
Beste Grüße
Andreas
Re: PHP mit Oracle
am 05.06.2006 21:23:45 von Joerg Behrens
Andreas Müller schrieb:
> Hi NG,
> ich habe da mal eine schwere Frage an der ich seit ca. 2 Wochen knabere.
> Also ich will einen Server mit PHP dazu bringen eine externe Datenbank auf
> der Oracle läuft abzufragen.
>
> Nun habe ich gelesen, dass ich dafür Oracle 10 installieren muss und
> anschließend PHP mit oci8 compilieren. Richtig?!
Ja, Geruechte sagen das es mit dem Instant Client leichter gehen soll.
Ich kenne allerdings nur die normalen Oracle Clients aus 8 und 9.
> Das habe ich schon einmal versucht und mir dabei den Server zerschossen. Nun
> muss ich diesen erstmal zurücksetzen lassen und dann versuche ich es erneut.
> Wie sind eure Erfahrungen!!
Hier installiert sich Oracle in EIN Verzeichnis. Wie man sich dabei den
Server zerschiessen kann ist mir schleierhaft ;).
Anschliessend kompiliert man sich die oci8 Extension oder man versucht
sein Glueck mit PECL. Ich meine aber das die ext/oci8 aktueller ist als
die in PECL.
Gruss
Joerg
Re: PHP mit Oracle
am 07.06.2006 15:01:04 von Abalorio
Hi Joerg,
ich habe mir den Server nicht bei der Installation zerschossen sondern beim
compilieren und der zusätzlichen Installation von diversen Bibliotheken. Du
verstehst ;-). Gruß Andreas
"Joerg Behrens" schrieb im Newsbeitrag
news:4ejem7F1eqbhdU1@individual.net...
> Andreas Müller schrieb:
>> Hi NG,
>> ich habe da mal eine schwere Frage an der ich seit ca. 2 Wochen knabere.
>> Also ich will einen Server mit PHP dazu bringen eine externe Datenbank
>> auf der Oracle läuft abzufragen.
>>
>> Nun habe ich gelesen, dass ich dafür Oracle 10 installieren muss und
>> anschließend PHP mit oci8 compilieren. Richtig?!
>
> Ja, Geruechte sagen das es mit dem Instant Client leichter gehen soll. Ich
> kenne allerdings nur die normalen Oracle Clients aus 8 und 9.
>
>> Das habe ich schon einmal versucht und mir dabei den Server zerschossen.
>> Nun muss ich diesen erstmal zurücksetzen lassen und dann versuche ich es
>> erneut. Wie sind eure Erfahrungen!!
>
> Hier installiert sich Oracle in EIN Verzeichnis. Wie man sich dabei den
> Server zerschiessen kann ist mir schleierhaft ;).
>
> Anschliessend kompiliert man sich die oci8 Extension oder man versucht
> sein Glueck mit PECL. Ich meine aber das die ext/oci8 aktueller ist als
> die in PECL.
>
>
> Gruss
> Joerg
Re: PHP mit Oracle
am 07.06.2006 17:13:33 von Abalorio
Hi NG,
mein jetztiger Fehler beim compilieren von PHP ist:
....
l2 -lz -lm -ldl -lm -lnsl -lirc -lclntsh -lxml2 -lz -lm -lxml2 -lz -lm -lxml2
-lz -lm -lxml2 -lz -lm -o libphp5.la
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_6 4-suse-linux/bin/ld:
skipping incompatible
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libi rc.a when
searching for -lirc
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_6 4-suse-linux/bin/ld:
cannot find -lirc
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
Hat jemand von euch eine Idee woran das liegen kann? Gruß
Andreas
"Andreas Müller" schrieb im Newsbeitrag
news:e61s7d$f9f$00$1@news.t-online.com...
> Hi NG,
> ich habe da mal eine schwere Frage an der ich seit ca. 2 Wochen knabere.
> Also ich will einen Server mit PHP dazu bringen eine externe Datenbank auf
> der Oracle läuft abzufragen.
>
> Nun habe ich gelesen, dass ich dafür Oracle 10 installieren muss und
> anschließend PHP mit oci8 compilieren. Richtig?!
>
> Das habe ich schon einmal versucht und mir dabei den Server zerschossen.
> Nun muss ich diesen erstmal zurücksetzen lassen und dann versuche ich es
> erneut. Wie sind eure Erfahrungen!!
>
> Beste Grüße
> Andreas
>
Re: PHP mit Oracle
am 07.06.2006 18:03:45 von Joerg Behrens
Andreas Müller schrieb:
> Hi NG,
> mein jetztiger Fehler beim compilieren von PHP ist:
>
> ...
> l2 -lz -lm -ldl -lm -lnsl -lirc -lclntsh -lxml2 -lz -lm -lxml2 -lz -lm -lxml2
> -lz -lm -lxml2 -lz -lm -o libphp5.la
> /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_6 4-suse-linux/bin/ld:
> skipping incompatible
> /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libi rc.a when
Was muss denn da nun 32 und oder 64 bit sein?
> searching for -lirc
Der Linker versucht einen Fallback auf eine libirc.so welche er nicht
findet weil es die nicht gibt, bzw. diese in einem nicht Standardpfad
liegt. Letzters kann man beheben in dem -L/mein/toller/pfad in die
Linkline mit aufnimmt oder aber seine $LDFLAGS entsprechend ergaenzt.
> /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_6 4-suse-linux/bin/ld:
> cannot find -lirc
> collect2: ld returned 1 exit status
> make: *** [libphp5.la] Error 1
Gruss
Joerg
Re: PHP mit Oracle
am 07.06.2006 19:14:46 von Abalorio
Hi Jörg,
also 'libirc.so' habe ich im Verzeichnis '/opt/gnome/lib64/gaim' gefunden.
Aber wie kann ich nun sagen wo er es findet? Gruß
Andreas
P.S.: Ich mein bisher sieht es so aus:
../configure --with-oci8=/usr/lib/oracle/xe/app/oracle/product/10.2.0/ser ver
--prefix=/usr --datadir=/usr/share/php --mandir=/usr/share/man --bindir=/usr/bin
--libdir=/usr/share --includedir=/usr/include --sysconfdir=/etc --with-_lib=lib64
--with-config-file-path=/etc --with-exec-dir=/usr/lib64/php/bin --disable-debug
--enable-inline-optimization --enable-memory-limit --enable-magic-quotes --enable-safe-mode
--enable-sigchild --disable-ctype --disable-session --without-mysql --disable-cli
--without-pear --with-apxs2=/usr/sbin/apxs2-prefork x86_64-suse-linux &&
make
"Joerg Behrens" schrieb im Newsbeitrag
news:4eobn4F1eikgsU1@individual.net...
> Andreas Müller schrieb:
>> Hi NG,
>> mein jetztiger Fehler beim compilieren von PHP ist:
>>
>> ...
>> l2 -lz -lm -ldl -lm -lnsl -lirc -lclntsh -lxml2 -lz -lm -lxml2 -lz -lm -lxml2
>> -lz -lm -lxml2 -lz -lm -o libphp5.la
>> /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_6 4-suse-linux/bin/ld:
>> skipping incompatible
>> /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/libi rc.a when
>
> Was muss denn da nun 32 und oder 64 bit sein?
>
>> searching for -lirc
>
> Der Linker versucht einen Fallback auf eine libirc.so welche er nicht
> findet weil es die nicht gibt, bzw. diese in einem nicht Standardpfad
> liegt. Letzters kann man beheben in dem -L/mein/toller/pfad in die
> Linkline mit aufnimmt oder aber seine $LDFLAGS entsprechend ergaenzt.
>
>> /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.5/../../../../x86_6 4-suse-linux/bin/ld:
>> cannot find -lirc
>> collect2: ld returned 1 exit status
>> make: *** [libphp5.la] Error 1
>
>
> Gruss
> Joerg
Re: PHP mit Oracle
am 07.06.2006 20:33:25 von Joerg Behrens
Andreas Müller schrieb:
> Hi Jörg,
> also 'libirc.so' habe ich im Verzeichnis '/opt/gnome/lib64/gaim' gefunden.
Ich glaube kaum es es eine Verbindung von PHP und Oracle zu dem Instant
Messanger GAIM gibt. Es wird ein schlechter Zufall sein das die
Libraries gleich heissen.
> Aber wie kann ich nun sagen wo er es findet? Gruß
Das sagte ich im letzten Posting schon. -L/mein/toller/pfad in die
$LDFLAGS mit aufnehmen, die Linkline aendern und manuell aufrufen oder
aber im Makefile.
> Andreas
>
> P.S.: Ich mein bisher sieht es so aus:
>
> ./configure --with-oci8=/usr/lib/oracle/xe/app/oracle/product/10.2.0/ser ver
> --prefix=/usr --datadir=/usr/share/php --mandir=/usr/share/man --bindir=/usr/bin
> --libdir=/usr/share --includedir=/usr/include --sysconfdir=/etc --with-_lib=lib64
Das '--with-_lib=lib64 ' sieht sieht doch kaputt aus oder?
> --with-config-file-path=/etc --with-exec-dir=/usr/lib64/php/bin --disable-debug
> --enable-inline-optimization --enable-memory-limit --enable-magic-quotes --enable-safe-mode
> --enable-sigchild --disable-ctype --disable-session --without-mysql --disable-cli
> --without-pear --with-apxs2=/usr/sbin/apxs2-prefork x86_64-suse-linux &&
> make
Wie ich auch im ersten Posting schrieb wuerde ich erstmal versuchen nur
die *eine* Extension als oci.so zu kompilieren um diese dann in der
php.ini oder aber zur Laufzeit mit dl() zuladen.
Gruss
Joerg
Re: PHP mit Oracle
am 12.06.2006 19:05:49 von volker
Andreas Müller wrote:
> ich habe da mal eine schwere Frage an der ich seit ca. 2 Wochen knabere.
> Also ich will einen Server mit PHP dazu bringen eine externe Datenbank auf
> der Oracle läuft abzufragen.
>
> Nun habe ich gelesen, dass ich dafür Oracle 10 installieren muss und
> anschließend PHP mit oci8 compilieren. Richtig?!
>
> Das habe ich schon einmal versucht und mir dabei den Server zerschossen.
> Nun muss ich diesen erstmal zurücksetzen lassen und dann versuche ich es
> erneut. Wie sind eure Erfahrungen!!
Hallo Andreas,
ich durfte mich neulich auch mit diese zweitgrößten ABM (nach MS-Windows)
westlich der Wolga rumärgern. Ich hab's dann nach etlichen Gewürge
hingekriegt und anschließen gleich noch viermal auf verschiedenen Maschinen
installiert und dann in meinem Wiki verewigt, damit's nicht so schnell
wieder verlorengeht.
http://www.vboehm.de/wiki/index.php?title=PhpOracle
Ich hoffe, daß das weiterhilft.
mfg Volker
Re: PHP mit Oracle
am 14.06.2006 12:55:39 von Werner Flamme
Volker Boehm schrieb am 12.06.2006 19:05:
> installiert und dann in meinem Wiki verewigt, damit's nicht so schnell
> wieder verlorengeht.
> http://www.vboehm.de/wiki/index.php?title=PhpOracle
>
> Ich hoffe, daß das weiterhilft.
>
> mfg Volker
Hallo Volker,
ja, das ist schön geschrieben und erfasst viele wesentliche Aspekte ;-)
Du benutzt die Umgebungsvariable LD_LIBRARY_PATH - ich nicht. Ich setze
SUSE ein (10.0 Desktop, SLES9 Server). Dort gibt es ein Verzeichnis
/etc/ld.so.conf.d, in dem ich eine Datei oracle.conf angelegt habe. Die
enthält die Zeilen
/opt/oracle/product/10.2.0/db_1/lib
/opt/oracle/product/10.2.0/db_1/lib32
also die Bibliotheksverzeichnisse der Orakel-Installation (meine Kisten
sind x86_64, sonst reicht die 1. Zeile). Wenn dieses Verzeichnis (oder bei
anderen Distris ein Verzeichnis mit demselben Zweck) nicht existiert, kann
man die Zeile an die Datei /etc/ld.so.conf anhängen. Der nächste Aufruf von
ldconfig aktiviert das Ganze dann.
Dadurch stehen die Bibliotheken allen Usern zur Verfügung - falls mal
jemand TOra, gqlplus oder so was einsetzen will ;-) Man spart sich so das
Eintragen bei jedem User - und wenn die nächste Version sich woanders hin
installiert, ist mit einer Korrektur und anschließendem ldconfig alles
erledigt.
Nur als Ergänzug gedacht - ich wollte es nicht gleich in Dein Wiki hauen ;-)
Gruß aus dem heißen Leipzig
Werner