PHP 4.3.7 und Oracle 9.2 / 64bit

PHP 4.3.7 und Oracle 9.2 / 64bit

am 25.10.2004 15:34:19 von stefan.news

Hallo,

ist es möglich PHP 4.3.7 mit einem Oracle 9.2.0 auf Solaris 9 zu
compilieren?

Gibt man ORACLE_HOME bei with-oracle/with-oci8 an, funktioniert das
linken nicht, es wird wrong ELFCLASS64 gemeldet, eben weil die
Libraries nicht kompatibel sind.

Nun habe ich schon das Makefile bearbeitet und die Pfade für die
Oracle-Libraries von ./lib auf ./lib32 geändert, damit gegen die
32bittigen Libraries gelinkt wird, leider auch ohne Erfolg. make und
make install laufen zwar durch, das Modul funktioniert aber nicht.

Hat jemand eine solche Kombination am Laufen?
Gibt es andere Lösungen?

Thanks,
Stefan

Re: PHP 4.3.7 und Oracle 9.2 / 64bit

am 25.10.2004 16:18:56 von Joerg Behrens

"stefan behrens" schrieb im Newsbeitrag
news:54d256b3.0410250534.6686b533@posting.google.com...
> Hallo,

ein Behrens kommt selten allein... :)

> ist es möglich PHP 4.3.7 mit einem Oracle 9.2.0 auf Solaris 9 zu
> compilieren?

Solaris weis ich nicht... aber auf meinem IRIX64 gibts aehnliches
zuberichten und da kommt letztendlich was vernueftiges heraus. IRIX hat 3
ABIs welche sich in usr/lib, usr/lib32 usr/lib64 aufteilen was die
Verzeichnisstruktur anbelangt. Die Oracle DB legt dazu eine einer
Verzeichnisstruktur an welche lib (enthaelt 64bit Libs) und lib32 heisen.
Mann kann die Probleme hier sehen.

Dazu kommt das PHP Configure mit hardcodierten Pfaden. Hierzu und speziell
zum Thema Oracle gabs aber lange Diskussion auf PHP Internals sowie Patches.
Dein 4.3.7 duerfe da aber zu alt sein.

> Gibt man ORACLE_HOME bei with-oracle/with-oci8 an, funktioniert das

Bei ORACLE_HOME gibt man das Basisverzeichnis an
[o2k]:/ $ echo $ORACLE_HOME
/opt/oracle-8.1.7/OraHome1

Die ext/oracle solltest du gleich liegenlassen und nur ext/oci8 nehmen.

> linken nicht, es wird wrong ELFCLASS64 gemeldet, eben weil die
> Libraries nicht kompatibel sind.

Kein Linker kann Libs deren ABI nicht stimmt zusammenlinken.

> Nun habe ich schon das Makefile bearbeitet und die Pfade für die
> Oracle-Libraries von ./lib auf ./lib32 geändert, damit gegen die

Wenn du die entsprechendes Versionen von autoconf und automake hast und in
der Lage bist ein PHP konfigure selber zu erzeugen dann editiere doch
ext/oci8/config.m4 was DEUTLICH uebersichtlicher ist. Ein "rm configure;
../buildconf --force" erzeugt dann ein neues.

> 32bittigen Libraries gelinkt wird, leider auch ohne Erfolg. make und
> make install laufen zwar durch, das Modul funktioniert aber nicht.

WAS funkt. nicht.... wo wird was von wem ausgegeben? Nicht vergessen mit
enable-sigchild zulinken... und der Apache gegen -lpthreads linken.

> Hat jemand eine solche Kombination am Laufen?

Leider nein.... aber Solaris und Oracle ist eine verbreitete Plattform... du
solltest also nicht der ersten sein :)


Gruss
Joerg Behrens

--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025