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