За последние 24 часа нас посетили 17409 программистов и 1403 робота. Сейчас ищут 1818 программистов ...

Установка Oracle+PHP в Linux

Тема в разделе "Oracle Database", создана пользователем TheSingle, 28 апр 2008.

  1. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    Всем доброго времени суток.

    Уже не первый день бьюсь с клиентом oracle. В общем установил я его на CentOS. Сам клиент работает, но apache с ним не общается. phpinfo() ни чего не пишет о oracle :(

    Предположения: возможно надо перекампилить apache?

    В общем из под Linux я коннекчусь, а из скрипта PHP пишет, что не знает функции oci_connect().

    Подскажите, как правильно всё установить или дайте ссылку на подробное описание установки Oracle+Apache+PHP
     
  2. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Версия PHP?
     
  3. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
  4. Anonymous

    Anonymous Guest

    php_oci стоит и работает?
     
  5. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    Стоит только:
    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
     
  6. Anonymous

    Anonymous Guest

    Порядок действий такой:
    1. Ставите клиента Оракла.
    2.1. Ставите php_oci8.so (или как она у вас зовется в CentOS) при помощи
    Код (Text):
    1. # pecl install oci8
    2.2. Если не получается, качаете ее исходники из Пекла и компилируете, УКАЗАВ ПУТЬ к либе с клиентом.
    3. Подключаете либу в php.ini

    После этого она должа отображаться в phpinfo().

    На некоторых системах есть другие подводные камни. Пишите, будем разбираться.
     
  7. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    Спасибо Олег. Исходник скатал, т.к. у меня нет команды pecl.
    Можно более подробней расписать пункт 2.2 и 3, буду благодарен. А пока пробую сам.

    Начал пробовать по инструкции, распаложенной в исходнике. Остановился на конфигурировании, там файла configure нет.

    Список файлов
    Код (Text):
    1.  
    2. -rw-r--r-- config.m4
    3. -rw-r--r-- config.w32
    4. -rw-r--r-- CREDITS
    5. -rw-r--r-- oci8.c
    6. -rw-r--r-- oci8_collection.c
    7. -rw-r--r-- oci8.dsp
    8. -rw-r--r-- oci8_interface.c
    9. -rw-r--r-- oci8_lob.c
    10. -rw-r--r-- oci8_statement.c
    11. -rw-r--r-- php_oci8.h
    12. -rw-r--r-- php_oci8_int.h
    13. -rw-r--r-- README
     
  8. Anonymous

    Anonymous Guest

  9. Anonymous

    Anonymous Guest

    Если не встанет, скажите, будем думать еще
     
  10. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    Спасибо, Олег.
    Но не ставиться rpm.

    Ошибка во время установки:
    Код (Text):
    1.  
    2. ~]# rpm -ivh ./php-oci8-5.1.6-1.el5.i386.rpm
    3. warning: ./php-oci8-5.1.6-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID e42d547b
    4. error: Failed dependencies:
    5.         libclntsh.so.10.1 is needed by php-oci8-5.1.6-1.el5.i386
    6.         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):
    1.  
    2. ~]# ldconfig -p | grep libclntsh.so.10.1
    3.         libclntsh.so.10.1 (libc6) => /usr/lib/oracle/10.2.0.3/client/lib/libclntsh.so.10.1
    Куда же смотрит rpm при установки. Даже force install не помог.
     
  11. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    В общем разобрался.
    Разобрали rpm, вытащил от туда библиотеку php-oci8 и скопировал в папку модулей php. И в файле php.ini прописали extension = oci8.so
     
  12. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    Хорошо, установили, функция работает, но, не получаеться подключиться к базе.

    На сайте php.net
    Вот как подключаюсь я:
    Код (Text):
    1.  
    2. $host="mydestinationIP";
    3. $user="mylogin";
    4. $pass="mypass";
    5. $db="mydb";
    6.  
    7. $c1 = oci_connect($user, $pass, $db) or die ("Нет соединения с сервером: " . oci_error());
    Но я не могу понять, где указывается $host, если в функции oci_connect такого параметра нет.
     
  13. Anonymous

    Anonymous Guest

    это == альясу из tnsnames.ora, он по нему и коннектится.
     
  14. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    А можно прописать в самом коде?
    Я вот нашел, что то вроде этого:
    Код (Text):
    1.  
    2. $db = "(DESCRIPTION=
    3. (ADDRESS_LIST=
    4. (ADDRESS=(PROTOCOL=TCP)
    5. (HOST=IP Адрес сервера Oracle)(PORT=1521)
    6. )
    7. )
    8. (CONNECT_DATA=(SERVICE_NAME=Имя Инстанции)(SERVER = DEDICATED))
    9. )";
    Всё понятно до CONNECT_DATA, вто и как там прописывать, я не разобрался.
     
  15. Anonymous

    Anonymous Guest

    это и есть ORACLE_SID - имя экземпляра
     
  16. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    А как мне узнать этот SID?
     
  17. Anonymous

    Anonymous Guest

    TheSingle, у администратора :) Он указывается при установке.
     
  18. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    Я администратор. Только не помню, что бы указывал SID при установке. Если не сложно, подскажите, где можно его посмотреть после установки. Или это SID БД?
     
  19. Anonymous

    Anonymous Guest

    Да. Это имя запущенного экземпляра.
     
  20. TheSingle

    TheSingle Активный пользователь

    С нами с:
    26 ноя 2007
    Сообщения:
    27
    Симпатии:
    0
    Адрес:
    Moscow
    Спасибо, подключился.