Problema de instalación de PHP 5.6 OCI8:

Problema de instalación de PHP 5.6 OCI8:

Estoy intentando instalar la extensión OCI8 en Red Hat 7 (PHP 5.6.x.). He pasado al menos dos días intentando resolver esto, incluyendo la combinación de SuperUser y StackOverflow. Hasta ahora ninguna de las respuestas ha solucionado el problema.

Tengo Oracle Instant Client instalado en:

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

Cuando ejecuto el siguiente comando:

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

Me pide que proporcione la ruta a ORACLE_HOME. Confirmé que esto ya está definido, así que presioné Enter para continuar. Una vez que lo hago, se ejecutan los comandos make y aparecen errores en esto:

/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

Entiendo que no puede encontrar el archivo oci.h. Así que me imagino que si le proporciono la ubicación de Oracle Instant Client se superará ese error. Entonces, en el comando anterior donde solicita la variable de entorno ORACLE_HOME, le proporciono lo siguiente:

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

No puedo entender por qué está fallando. Escuché que es necesario instalar el SDK, pero hasta donde yo sé, cuando instalé el cliente instantáneo, también instalé el SDK.

Cualquier ayuda sería muy apreciada. ¡Gracias!

Respuesta1

Tuve exactamente el mismo problema, con una diferencia, en mi caso php54. Creo/espero que mi solución también funcione para usted:

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

Instalé el controlador oci sin ningún problema. En mi caso, dado que la versión predeterminada de PHP era 5.3, utilicé los paquetes proporcionados por rh para 5.4 y tuve que buscar /opt/rh/php54/enable antes de iniciar pecl para la instalación de oci. espero que esto ayude

información relacionada