Problema di installazione OCI8 di PHP 5.6:


1

Sto cercando di installare l'estensione OCI8 su Red Hat 7 (PHP 5.6.x.) Ho trascorso almeno due giorni a cercare di capire questo tra cui la combinazione di SuperUser e StackOverflow. Finora nessuna delle risposte ha risolto il problema.

Ho Oracle Instant Client installato su:

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

Quando eseguo il seguente comando:

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

Mi chiede di fornire il percorso per ORACLE_HOME. Ho confermato che questo è già stato definito, quindi ho premuto Invio per continuare. Una volta fatto, passa attraverso i comandi make e gli errori a questo:

/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

Capisco che non riesce a trovare il file oci.h. Quindi immagino che se gli fornisco la posizione di Oracle Instant Client andrà oltre quell'errore. Quindi al comando precedente in cui richiede la variabile d'ambiente ORACLE_HOME, gli fornisco quanto segue:

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

Non riesco a capire perché stia fallendo. Ho sentito che l'SDK deve essere installato, ma per quanto ne so, quando ho installato il client istantaneo, ho installato anche l'SDK.

Qualsiasi aiuto sarebbe molto apprezzato. Grazie!

Risposte:


5

Ho avuto esattamente lo stesso problema, con un diff, nel mio caso php54. Penso / spero che la mia soluzione funzioni anche per te:

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

installato il driver oci senza problemi. Nel mio caso, poiché la versione predefinita di php era 5.3 ho usato i pacchetti forniti da rh per 5.4 e ho dovuto eseguire il source / opt / rh / php54 / enable prima di avviare pecl per l'installazione di oci. spero che questo possa essere d'aiuto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.