PHP 5.6 OCI8 Instalar Problema:

0

Eu estou tentando instalar a extensão OCI8 no Red Hat 7 (PHP 5.6.x.) Eu gastei pelo menos dois dias tentando descobrir isso, incluindo pentear SuperUser e StackOverflow. Até agora, nenhuma das respostas resolveu o problema.

Eu tenho o Oracle Instant Client instalado em:

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

Quando eu executo o seguinte comando:

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

Ele me pede para fornecer o caminho para ORACLE_HOME. Eu confirmei que isso já está definido, então eu apertei enter para continuar. Depois disso, ele é executado pelos comandos make e erros:

/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

Eu entendo que não é possível encontrar o arquivo oci.h. Então eu acho que, se eu fornecer o local do Oracle Instant Client, ele passará por esse erro. Então, no comando anterior, onde ele solicita a variável de ambiente ORACLE_HOME, eu forneco o seguinte:

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

Não consigo entender por que isso está falhando. Ouvi dizer que o SDK precisa ser instalado, mas, pelo que sei, quando instalei o cliente instantâneo, também instalei o SDK.

Qualquer ajuda seria muito apreciada. Obrigado!

    
por stack-flo 21.05.2016 / 00:35

1 resposta

3

Eu tive exatamente o mesmo problema, com um diff, no meu caso php54. Eu acho / espero que minha solução também funcione para você:

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

instalou o driver oci sem problemas. No meu caso, como a versão padrão do php era 5.3, eu usei os pacotes fornecidos pela rh para a versão 5.4 e tive que escolher / opt / rh / php54 / enable antes de iniciar o pecl para a instalação do oci. Espero que isso ajude

    
por 13.06.2016 / 11:44