Instalace OCI8 nejen na Ubuntu

Instalace OCI8 nejen na Ubuntu

Pokud cheme pracovat v PHP s Oracle databází, je nutné si nejprve zkompilovat a nainstalovat OCI8 rozšíření.

Instalace Oracle Instant Clienta a SDK

Nejprve si z (webu Oracle) stáhneme Instant Clienta a SDK k čemuž je zároveň potřeba se zaregistrovat na webu Oracle. Hledáme soubory instantclient-basic-linux.x64-[verze].zip a instantclient-sdk-linux.x64-[verze].zip. Jakmile soubory stáhneme, vytvoříme složku v /opt, například mkdir /opt/oracle. Soubory do složky následně přesuneme.

1mv instantclient-basic-linux.x64-[verze].zip /opt/oracle/instantclient-basic-linux.x64-[verze].zip
2mv instantclient-sdk-linux.x64-[verze].zip /opt/oracle/instantclient-sdk-linux.x64-[verze].zip

Přesunuté soubory je potřeba rozbalit.

1cd /opt/oracle
2unzip instantclient-basic-linux.x64-[verze].zip
3unzip instantclient-sdk-linux.x64-[verze].zip

Následně vytvoříme symbolické odkazy na .so soubory. Vaše verze Instant Clienta a SDK se může lišit, proto překontrolujte název složky i název .so souborů.

1ln -s /opt/oracle/instantclient_19_5/libclntsh.so.19.5 /opt/oracle/instantclient_19_5/libclntsh.so
2ln -s /opt/oracle/instantclient_19_5/libocci.so.19.5 /opt/oracle/instantclient_19_5/libocci.so

Nakonec je ještě nutné přidat složku do konfigurace ldconfigu. Opět se bude lišit název složky

1echo /opt/oracle/instantclient_19_5 > /etc/ld.so.conf.d/oracle-instantclient.conf

A aktualizovat ldconfig, pomocí příkazu ldconfig.

Instalace rozšíření do PHP

Abychom mohli oci8 rozšíření zkompilovat, je obvykle nutné nainstalovat ještě několik dalších knihoven. Zpravidla se jedná o tyto:

1apt install php-dev php-pear build-essential libaio1

Po úspěšné instalaci se můžeme konečně pustit do kompilace OCI8 rozšíření. V příkaze echo uvedeme cestu ke složce s instalací instant clienta, neboť pokud bychom ji neuvedli, zeptala by se nás na to instalace stejně.

1echo "instantclient,/opt/oracle/instantclient_12_2" | pecl install oci8

Po kompilaci a instalaci je ještě potřeba upravit konfiguraci PHP tak, aby rozšíření OCI8 načítalo. Proto odešleme následující sadu příkazů:

1echo "extension=oci8.so" >> /etc/php/7.3/mods-available/oci8.ini
2ln -s /etc/php/7.3/mods-available/oci8.ini /etc/php/7.3/cli/conf.d/20-oci8.ini
3ln -s /etc/php/7.3/mods-available/oci8.ini /etc/php/7.3/fpm/conf.d/20-oci8.ini
4ln -s /etc/php/7.3/mods-available/oci8.ini /etc/php/7.3/apache2/conf.d/20-oci8.ini

První řádek vytvoří .ini soubor v modech PHP 7.3. Pokud máte jinou verzi PHP, nebo si nejste jistí, zkontrolujte si ji nejprve příkazem php --version. Zbývající tři řádky vytvoří symbolický link do CLI, FPM a Apache2, aby bylo rozšíření načteno ve všech prostředích. Pokud ovšem nepoužíváte FPM nebo Apache2, můžete jeden z těchto řádků s klidným svědomím vypustit. Nakonec zkontrolujeme, zdali je rozšíření skutečně zapnuto

1php -m | grep oci8
2php-fpm7.3 -m | grep oci8

Pokud uvidíte oci8, jsme téměř u konce. Ještě je totiž potřeba restartovat FPM klienta, případně Apache2.

1service php7.3-fpm restart
2## nebo
3service apache2 restart