Назад | Перейти на главную страницу

Как установить мгновенный клиент Oracle OCI8 на Ubuntu 18.04

Я хочу поделиться некоторой информацией о моей установке OCI8 для доступа к базам данных Oracle.

Если у вас есть такие ошибки, как "Запуск PHP: невозможно загрузить динамическую библиотеку oci8.so"

или "проверка совместимости версии библиотеки Oracle Instant Client ... configure: error: Ссылка с libclntsh.so на /opt/oracle/instantclient/libclntsh.so.*.1 не найдена"

или просто хотите установить Quick & Easy OCI8, чтобы установить соединение между вашим php и базой данных Oracle, вы находитесь в нужном месте!

Первые предварительные требования - это рабочая среда apache2 и php7.2 (Ubunti 18.04).

  1. Загрузите базовый пакет (например, Instantclient-basic-linux.x64-12.2.0.1.0.zip) и пакет sdk (Instantclient-sdk-linux.x64-12.2.0.1.0.zip) с веб-сайта Oracle. http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html

  2. Загрузите оба файла на свой веб-сервер, вы можете использовать для этого WinSCP

  3. Разархивируйте оба файла на сервере, в моем случае вы получите новую папку с именем "Instantclient_12_2"

4а. Создать папку назначения

mkdir / opt / oracle

4b. Переместите и переименуйте папку Instantclient

mv Instantclient_12_2 / opt / oracle / Instantclient

4c. Изменить права на папку

chown -R корень: www-data / opt / oracle

  1. Проверьте, есть ли у вас необходимые пакеты для установки OCI8

apt установить php7.2-dev php-pear build-essential libaio1

  1. Создайте необходимые софт-ссылки

ln -s /opt/oracle/instantclient/libclntsh.so.12.1 /opt/oracle/instantclient/libclntsh.so

ln -s /opt/oracle/instantclient/libocci.so.12.1 /opt/oracle/instantclient/libocci.so

7а. Добавить мгновенный клиент в файлы конфигурации ld

эхо / opt / oracle / Instantclient> /etc/ld.so.conf.d/oracle-instantclient.conf

7b. Обновление привязок времени выполнения динамического компоновщика

ldconfig

8а. Теперь установите OCI8 с помощью pecl

pecl установить oci8

8b. Установка OCI8 запрашивает правильную папку

мгновенный клиент, / опт / оракул / мгновенный клиент

9а. Добавьте oci lib в конфигурацию cli php (консоль php)

echo "extension = oci8.so" >> /etc/php/7.2/cli/php.ini

9b. Добавить oci lib в конфигурацию apache php

echo "extension = oci8.so" >> /etc/php/7.2/apache2/php.ini

10а. Задайте переменные окружения для версии cli (после этого вам нужно будет перезагрузить сервер)

echo "LD_LIBRARY_PATH = \" / opt / oracle / Instantclient \ "" >> / etc / environment

echo "ORACLE_HOME = \" / opt / oracle / Instantclient \ "" >> / etc / environment

10б. Установите переменные окружения для версии apache

echo "экспорт LD_LIBRARY_PATH = \" / opt / oracle / Instantclient \ "" >> / etc / apache2 / envvars

echo "экспорт ORACLE_HOME = \" / opt / oracle / Instantclient \ "" >> / etc / apache2 / envvars

  1. Перезагрузите Apache

перезапуск службы apache2

  1. Готово, теперь вы можете проверить свое соединение с базой данных Oracle.

= ПРИМЕР ПОДКЛЮЧЕНИЯ К PHP =

<?php
// Create connection to Oracle, change HOST IP and SID string!
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 000.000.000.000)(PORT = 1521)))(CONNECT_DATA=(SID=XXX)))";
// Enter here your username (DBUSER) and password!
$conn = oci_connect("DBUSER", "PASSWORD",$db);
if (!$conn) {
   $m = oci_error();
   echo $m['message']. PHP_EOL;
   exit;
}
else {
   print "Oracle database connection online". PHP_EOL;
}

?>