Для установки поддержки OCI8 в PHP7.3 нам понадобиться сначала, инсталлировать клиент + SDK для подключения к базе данных ORACLE и указать пути для правильно работы OCI8.
Шаг: 1
Создадим каталог, в терминале введем команду:
mkdir /opt/oracle
Шаг:2
Загрузите Oracle Instant Client и SDK с веб-сайта Oracle, (версия может отличаться, просто подставляйте необходимую вам, в моем случае это версия 11.2). Также обратите внимания на разрядность скачиваемого пакета x32 или x64.
Ссылка: https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
Ищем на странице файлы Instantclient-basic-linux.x64-(ваша версия).zip и instantclient-sdk-linux.x64-(ваша версия).zip
Закидываем файлы в наш каталог
/opt/oracle
Шаг:3
Переходим в каталог и извлекаем содержимое из архивов
cd /opt/oracle
unzip instantclient-basic-linux.x64-11.2.0.1.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.1.0.zip
Вводим в терминале команду ls, и смотрим, какие у нас каталоги доступны, в моем случае это версия instantclient_11_2
Цифра в конце это номер версии клиента и SDK.
Далее переименовываем извлеченный каталог
mv instantclient_11_2 instantclient
В результате у нас должна получиться структура от корня:
/opt/oracle/instantclient
Шаг: 4
Далее необходимо создать симлинки.
ln -s /opt/oracle/instantclient/libclntsh.so.11.2 /opt/oracle/instantclient/libclntsh.so
ln -s /opt/oracle/instantclient/libocci.so.11.2 /opt/oracle/instantclient/libocci.so
Шаг: 5
Укажем папку конфигурации для ldconfig.
echo /opt/oracle/instantclient> /etc/ld.so.conf.d/oracle-instantclient.conf
Обновляем и для динамической подгрузки конфига.
ldconfig
По установки клиента все.
Установка расширение для PHP в виде модуля OCI8
Чтобы установить расширение OCI8, нам нужно получить несколько дополнительных пакетов.
Шаг:1
Запустите эти команды для установки необходимых пакетов:
apt install php-dev php-pear build-essential libaio1
Шаг: 2
Установите расширение oci8 через PECL.
echo "instantclient,/opt/oracle/instantclient" | pecl install oci8
Если все прошло успешно, вы должны видеть примерно такое сообщение
Build process completed successfully
Installing '/usr/lib/php/20180731/oci8.so'
install ok: channel://pecl.php.net/oci8-2.2.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini
Шаг:3
Теперь мы можем сказать PHP, что он может подгрузить библиотеку oci8
echo "extension=oci8.so" >> /etc/php/7.3/mods-available/oci8.ini
ln -s /etc/php/7.3/mods-available/oci8.ini /etc/php/7.3/cli/conf.d/20-oci8.ini
ln -s /etc/php/7.3/mods-available/oci8.ini /etc/php/7.3/fpm/conf.d/20-oci8.ini
Шаг:5
Перезапускаем PHP, в моем случае это версия 7.3, соответственно команда для рестарта:
service php7.3-fpm restart
Проверяем подгрузилась ли наша библиотека, командой:
php -m | grep oci8
Если все прошло успешно, вы увидите сообщение:
user:/# php -m | grep oci8
oci8
Все!
Комментарии на сайте доступны только для зарегистрированных пользователей, вы можете пройти регистрацию или войти с помощью социальных сетей, если у вас еще нет аккаунта.