Проблема установки PHP 5.6 OCI8:

Я пытаюсь установить расширение OCI8 на Red Hat 7 (PHP 5.6.x. Я провел по крайней мере два дня, пытаясь понять это, включая расчесывание SuperUser и StackOverflow. До сих пор ни один из ответов не устранил проблему.

у меня установлен Oracle Instant Client по адресу:

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

когда я запускаю следующую команду:

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

он просит меня указать путь к ORACLE_HOME. Я подтвердил, что это уже определено, поэтому я нажал enter, чтобы продолжить. Как только я это сделаю, он проходит через команды make и ошибки при этом:

/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

Я понимаю, что он не может найти анимацию.h файл. Поэтому я считаю, что если я предоставлю ему местоположение мгновенного клиента Oracle, он пройдет мимо этой ошибки. Поэтому в предыдущей команде, где она запрашивает переменную среды ORACLE_HOME, я предоставляю ей следующее:

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

Я не могу понять, почему он терпит неудачу. Я слышал, что SDK должен быть установлен, но, по-моему знание, когда я установил instant client, я также установил SDK.

любая помощь была бы очень признательна.
Спасибо!

5
задан Burgi
источник

1 ответов

У меня была точно такая же проблема, с одним различием, в моем случае php54. Я думаю/надеюсь, что мое решение работает для вас:

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

установил драйвер oci без каких-либо проблем. В моем случае, поскольку версия php по умолчанию была 5.3, я использовал пакеты rh, поставляемые для 5.4, и должен был использовать /opt/rh/php54/enable перед запуском pecl для установки oci. Надеюсь, это поможет

3
отвечен ik_zelf 2016-06-13 09:44:15
источник

Другие вопросы database php5 redhat-enterprise-linux