January 11, 2021

Установка OCI8 + pdo_oci8 в Ubuntu 20.04 (Это драйвер для работы с Oracle для PHP)

Пошаговая инструкция. В этой статье я устанавливаю instantclient 21.1, если будете ставить другую версию - ссылки надо будет скорректировать.

Что нужно откорректировать - начинается на [!]

Страница на сайте Oracle: https://www.oracle.com/database/technologies/instant-client/downloads.html

Входим на сервер как sudo, далее делаем следующее:

cd /opt
mkdir oracle
cd oracle
[!] wget https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-basiclite-linux.x64-21.1.0.0.0.zip
[!] wget https://download.oracle.com/otn_software/linux/instantclient/211000/instantclient-sdk-linux.x64-21.1.0.0.0.zip
[!] unzip instantclient-basiclite-linux.x64-21.1.0.0.0.zip
[!] unzip instantclient-sdk-linux.x64-21.1.0.0.0.zip
apt install libaio1
sh -c "echo /opt/oracle/instantclient_21_1 > \ /etc/ld.so.conf.d/oracle-instantclient.conf"
ldconfig - чтобы после установки oci8 видел библиотеки
apt install php-dev -y
pecl install oci8-2.2.0

Но если у нас php8, то:

pecl install oci8

В процессе установки он спросит путь до instanclient, вписываем:

[!] Вписать: instantclient,/opt/oracle/instantclient_21_1
cd ~
wget http://be.php.net/distributions/php-7.4.3.tar.gz

Если версия PHP не 7.4.3, то замените в ссылке на вашу версию

tar -xf php-7.4.3.tar.gz
cd php-7.4.3/ext/pdo_oci
phpize
[!] ./configure --with-pdo-oci=instantclient,/opt/oracle/instantclient_21_1
make
make install
nano /etc/php/7.4/apache2/php.ini

Вписываем в конец файла:

extension=oci8.so
extension=pdo_oci.so
nano /etc/php/7.4/cli/php.ini

Вписываем в конец файла:

extension=oci8.so
extension=pdo_oci.so

Готово