Всем доброго времени суток. Уже не первый день бьюсь с клиентом oracle. В общем установил я его на CentOS. Сам клиент работает, но apache с ним не общается. phpinfo() ни чего не пишет о oracle Предположения: возможно надо перекампилить apache? В общем из под Linux я коннекчусь, а из скрипта PHP пишет, что не знает функции oci_connect(). Подскажите, как правильно всё установить или дайте ссылку на подробное описание установки Oracle+Apache+PHP
Стоит только: php-pdo-5.1.6-15.el5 php-common-5.1.6-15.el5 php-cli-5.1.6-15.el5 php-5.1.6-15.el5 php-ldap-5.1.6-15.el5 php-mysql-5.1.6-15.el5
Порядок действий такой: 1. Ставите клиента Оракла. 2.1. Ставите php_oci8.so (или как она у вас зовется в CentOS) при помощи Код (Text): # pecl install oci8 2.2. Если не получается, качаете ее исходники из Пекла и компилируете, УКАЗАВ ПУТЬ к либе с клиентом. 3. Подключаете либу в php.ini После этого она должа отображаться в phpinfo(). На некоторых системах есть другие подводные камни. Пишите, будем разбираться.
Спасибо Олег. Исходник скатал, т.к. у меня нет команды pecl. Можно более подробней расписать пункт 2.2 и 3, буду благодарен. А пока пробую сам. Начал пробовать по инструкции, распаложенной в исходнике. Остановился на конфигурировании, там файла configure нет. Список файлов Код (Text): -rw-r--r-- config.m4 -rw-r--r-- config.w32 -rw-r--r-- CREDITS -rw-r--r-- oci8.c -rw-r--r-- oci8_collection.c -rw-r--r-- oci8.dsp -rw-r--r-- oci8_interface.c -rw-r--r-- oci8_lob.c -rw-r--r-- oci8_statement.c -rw-r--r-- php_oci8.h -rw-r--r-- php_oci8_int.h -rw-r--r-- README
http://ftp.freshrpms.net/pub/freshrpms/ ... 5.i386.rpm Только для вас Поставьте. http://freshrpms.net/docs/oracle/ - на всякий
Спасибо, Олег. Но не ставиться rpm. Ошибка во время установки: Код (Text): ~]# rpm -ivh ./php-oci8-5.1.6-1.el5.i386.rpm warning: ./php-oci8-5.1.6-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e42d547b error: Failed dependencies: libclntsh.so.10.1 is needed by php-oci8-5.1.6-1.el5.i386 oracle-instantclient = 10.2.0.3 is needed by php-oci8-5.1.6-1.el5.i386 Установил oracle-instantclient 10.2.0.3 я установил, раньше стояла версия 11.1 Прописал симлинки на библиотеки, проверяю ldconfig и всё стоит. Код (Text): ~]# ldconfig -p | grep libclntsh.so.10.1 libclntsh.so.10.1 (libc6) => /usr/lib/oracle/10.2.0.3/client/lib/libclntsh.so.10.1 Куда же смотрит rpm при установки. Даже force install не помог.
В общем разобрался. Разобрали rpm, вытащил от туда библиотеку php-oci8 и скопировал в папку модулей php. И в файле php.ini прописали extension = oci8.so
Хорошо, установили, функция работает, но, не получаеться подключиться к базе. На сайте php.net Вот как подключаюсь я: Код (Text): $host="mydestinationIP"; $user="mylogin"; $pass="mypass"; $db="mydb"; $c1 = oci_connect($user, $pass, $db) or die ("Нет соединения с сервером: " . oci_error()); Но я не могу понять, где указывается $host, если в функции oci_connect такого параметра нет.
А можно прописать в самом коде? Я вот нашел, что то вроде этого: Код (Text): $db = "(DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP) (HOST=IP Адрес сервера Oracle)(PORT=1521) ) ) (CONNECT_DATA=(SERVICE_NAME=Имя Инстанции)(SERVER = DEDICATED)) )"; Всё понятно до CONNECT_DATA, вто и как там прописывать, я не разобрался.
Я администратор. Только не помню, что бы указывал SID при установке. Если не сложно, подскажите, где можно его посмотреть после установки. Или это SID БД?