Installationsproblem von PHP 5.6 OCI8:

3120
stack-flo

Ich versuche, die OCI8-Erweiterung auf Red Hat 7 (PHP 5.6.x.) zu installieren. Ich habe mindestens zwei Tage damit verbracht, dies herauszufinden, einschließlich des Kämmens von SuperUser und StackOverflow. Bisher hat keine der Antworten das Problem behoben.

Ich habe den Oracle Instant Client installiert unter:

/usr/lib/oracle/12.1/client64/lib/ 

Wenn ich den folgenden Befehl ausführen:

pecl install oci8-2.0.10 --with-oci8=instantclient,/usr/lib/oracle/12.1/client64/lib/ 

Es fordert mich auf, den Pfad zu ORACLE_HOME anzugeben. Ich habe bestätigt, dass dies bereits definiert ist. Sobald ich das getan habe, werden die make-Befehle und die folgenden Fehler ausgeführt:

/bin/sh /var/tmp/pear-build-rootb3mVn8/oci8-2.0.10/libtool --mode=compile cc -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootb3mVn8/oci8-2.0.10/include -I/var/tmp/pear-build-rootb3mVn8/oci8-2.0.10/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/home/oracle/oracle/product/rdbms/public -I/home/oracle/oracle/product/rdbms/demo -DHAVE_CONFIG_H -g -O2 -c /var/tmp/oci8/oci8.c -o oci8.lo libtool: compile: cc -I. -I/var/tmp/oci8 -DPHP_ATOM_INC -I/var/tmp/pear-build-rootb3mVn8/oci8-2.0.10/include -I/var/tmp/pear-build-rootb3mVn8/oci8-2.0.10/main -I/var/tmp/oci8 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/home/oracle/oracle/product/rdbms/public -I/home/oracle/oracle/product/rdbms/demo -DHAVE_CONFIG_H -g -O2 -c /var/tmp/oci8/oci8.c -fPIC -DPIC -o .libs/oci8.o In file included from /var/tmp/oci8/oci8.c:48:0: /var/tmp/oci8/php_oci8_int.h:60:17: fatal error: oci.h: No such file or directory #include <oci.h> ^ compilation terminated. make: *** [oci8.lo] Error 1 ERROR: `make' failed 

Ich verstehe, dass es die oci.h-Datei nicht finden kann. Ich denke also, wenn ich den Ort des Oracle Instant Client angreife, wird dieser Fehler überschritten. Beim vorherigen Befehl, in dem die Umgebungsvariable ORACLE_HOME angefordert wird, muss ich Folgendes angeben:

checking Oracle ORACLE_HOME install directory... /usr/lib/oracle/12.1/client64/lib/ checking ORACLE_HOME library validity... configure: error: Expected an ORACLE_HOME top level directory but /usr/lib/oracle/12.1/client64/lib/ appears to be an Instant Client directory. Try --with-oci8=instantclient,/usr/lib/oracle/12.1/client64/lib/ ERROR: `/var/tmp/oci8/configure --with-oci8=/usr/lib/oracle/12.1/client64/lib/' failed 

Ich kann nicht herausfinden, warum es versagt. Ich habe gehört, dass das SDK installiert werden muss. Wenn ich jedoch den Instant-Client installiert habe, habe ich meines Wissens auch das SDK installiert.

Jede Hilfe wäre sehr dankbar. Vielen Dank!

0

1 Antwort auf die Frage

3
ik_zelf

Ich hatte genau das gleiche Problem, mit einem Unterschied, in meinem Fall PHP54. Ich denke / hoffe, dass meine Lösung auch für Sie funktioniert:

echo "instantclient,/usr/lib/oracle/12.1/client64/lib"|pecl install oci8-2.0.10 

installierte den oci-Treiber ohne Probleme. Da die voreingestellte PHP-Version 5.3 war, habe ich in meinem Fall die von RH bereitgestellten Pakete für 5.4 verwendet und musste vor dem Start von pecl für die oci-Installation source / opt / rh / php54 / aktivieren. ich hoffe das hilft