Важнее удовлетворение от того, что имеешь, чем вечная гонка за тем, чего хочешь

Как установить oci8 в PHP 7.4

На системе Linux Mint 20 с ядром 5.8.0, пробуем собрать PHP 7.4 с поддержкой расширения для работы с базой данных Oracle Database, для этого добавляем к вызову конфигурационного скрипта (./configure) опцию:


--with-oci8

Если после этого ваш скрипт не находит клиента для Oracle и заканчивается предупреждением:


--with-oci8: not found

Вероятно вам необходимо скачать и установить собственно Oracle Instant Client и SDK для него, которые для себя я нашел по ссылке: Instant Client Downloads for Linux AMD64

Скачав ZIP архивы instantclient-basic и instantclient-sdk (вам понадобится завести аккаунт в Oracle) и выполнив их распаковку, к примеру в директорию /usr/local/lib/oci8/instantclient10_1, создаем символьную ссылку для libclntsh.so:


cd /usr/local/lib/oci8/instantclient10_1
ln -fs libclntsh.so.10.1 libclntsh.so

А также добавляем нашу директорию с библиотеками и SDK в кэш динамических библиотек для подключения их через ldconfig. Как это сделать, я описывал ранее, если вы еще не знаете, то можно подглядеть вот здесь (не забываем вызвать ldconfig после изменения ld.so.config).

Теперь, минимальные требования для сборки с oci8 соблюдены, вновь вызываем конфигурационный скрипт PHP, но с опцией:


--with-oci8=shared,instantclient,/usr/local/lib/oci8/instantclient10_1

Если после очередного вызова мы получаем ошибку:


checking Oracle Instant Client library version compatibility... configure: error: Link from /usr/local/lib/oci8/instantclient10_1/libclntsh.so to /usr/local/lib/oci8/instantclient10_1/libclntsh.so.*.1 not found

Внимательно проверьте создание символической ссылки на библиотеку libclntsh.so.10.1 (читайте выше). Если ошибки нет, то доводим сборку до конца и в итоге получаем в директории PHP расширений (у меня это no-debug-non-zts-20190902), наше желанное расширение oci8.so.

Прописываем в php.ini строку с расширением:


extension=oci8.so

И в итоге получаем поддержку OCI8 Support с клиентской библиотекой версии 10.1:

PHP 7.4 с OCI8