Клиент устанавливаем не самый свежий — 11.2 — используется для нормальной работы со старыми базами Oracle (версии 9). Последний на данный момент релиз 12.1 их уже не поддерживает, но данная инструкция позволяет установить и его.
Сразу ставим эту библиотеку:
aptitude install libaio1
Качаем Oracle Instant Client и прочие необходимые компоненты с сайта.
Копируем из zip архивов содержимое в
/opt/oracle/
В моем случае получилось
/opt/oracle/instantclient_11_2/
Далее по порядку:
TNS_ADMIN=/opt/oracle/network
LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2/
ORACLE_HOME=/opt/oracleinstantclient_11_2/
PATH=$PATH:$ORACLE_HOME/
export TNS_ADMIN ORACLE_HOME LD_LIBRARY_PATH PATH
Как показывает практика, команды показанные выше, необходимы для работы SQLPlus, но не обязательны для PHP. Еще нужно найти способ, чтобы система эти пути запомнила навсегда, иначе после перезагрузки вам придется прописывать пути заново.
Далее создаем папку network — дочернюю для ORACLE_HOME
В моем случае:
/opt/oracle/instantclient_11_2/network/
В ней создаем файл
tnsnames.ora
Содержимое файла в моем случае такое:
NAMEFORUSE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SERVICE_NAME)
)
)
В большинстве случаев вам нужно поменять только те значения, что выделены жирным: имя для подключения к базе (используется, например, в PHP), IP адрес сервера, где находится база данных и имя базы данных (сервисное имя).
Также требуется создать папку admin в /opt/oracle/instantclient_11_2/network/ и разместить в ней созданный файл tnsnames.ora
Также требуется создать папку admin в /opt/oracle/instantclient_11_2/network/ и разместить в ней созданный файл tnsnames.ora
Создадим файл
/etc/ld.so.conf.d/oracle.conf
пропишем путь
/opt/oracle/instantclient_11_2/
Выполним команду:
ldconfig
Привязываем к PHP. Я всегда использую удобный пакет для развертывания Apache, PHP, MySQL — LAMPP.
После установки, вся конфигурация для работы с базами Orcale сводится к вводу команды:
/opt/lampp/lampp oci8
Система попросит указать путь к библиотекам Oracle, в моем случае я ввел:
/opt/oracle/instantclient_11_2/
Все готово для работы, теперь можно соединяться с базами данных, используя PHP.