Skip to content

Oracle Instantclient 12.2 und OCI8 für php7 auf Debian installieren

Den Oracle Instantclient laden wir von der Oracle Seite herunter. Die Pakete sind aber als RPM Pakete vorhanden. Um aus diesen RPM Paketen, Debian Pakete zu bauen, benötigen wir noch folgende Pakete, die wir installieren.

root:~# apt-get install php-pear php-dev libaio1 alien

Nun gehen wir auf die Oracle Seite und laden uns den gewünschten Oracle Instantclient herunter. In unseren Fall ist es die Seite von Oracle Instantclient 12.2.0.1.0. Diese Dateien (ich habe alle RPM Pakete von der Version 12.2.0.1.0 herunter geladen) speichern wir z.B. in das Verzeichnis ~/tmp.

Nun gehen wir in das Verzeichnis ~/tmp/ in welchen sich die herunter geladenen RPM Pakete befinden und bauen mit folgenden Befehl, Debian Pakete daraus.

root:~# cd ~/tmp/
root:~/tmp# for x in $(ls -1); do sudo alien $x; done

Als nächsten Schritt, installieren wir die Pakete mit dpkg -i.

root:~/tmp# dpkg -i oracle-instantclient12.2-basic_12.2.0.1.0-2_amd64.deb
root:~/tmp# dpkg -i oracle-instantclient12.2-jdbc_12.2.0.1.0-2_amd64.deb
root:~/tmp# dpkg -i oracle-instantclient12.2-odbc_12.2.0.1.0-2_amd64.deb
root:~/tmp# dpkg -i oracle-instantclient12.2-sqlplus_12.2.0.1.0-2_amd64.deb
root:~/tmp# dpkg -i oracle-instantclient12.2-devel_12.2.0.1.0-2_amd64.deb

Nach der Installation der Pakete fügen wir den Pfad des Instant Clients noch zum LD_LIBRARY_PATH hinzu.

root:~# echo "/usr/lib/oracle/12.2/client64/lib/" >/etc/ld.so.conf.d/oracle.conf
root:~# ldconfig

Mit folgende Befehl können wir prüfen, ob die Bibliotheken auch geladen wurden.

root:~# ldconfig -p | grep oracle

Nun laden wir uns die aktuelle Version von OCI8 herunter. Zum Zeitpunk dieser Installation war das die Version 2.1.3. Anschließend installieren wir oci8 mit pear. Dabei wir nach einen Pfad gefragt, welcher aber schon voreingestellt ist. Einfach <RETURN> drücken und oci8 wird kompiliert und installiert.

root:~/tmp# wget http://pecl.php.net/get/oci8-2.1.3.tgz
root:~/tmp# sudo pear install oci8-2.1.3.tgz

Nun erstellen wir und noch eine Moduldatei /etc/php/7.0/mods-available/oci8.ini mit folgenden Inhalt.

root:~/tmp# vi /etc/php/7.0/mods-available/oci8.ini
[OCI8]
extension=oci8.so

Wenn wir die Datei gespeichert haben, aktivieren wir das Module wie folgt.

root:~/tmp# phpenmod oci8

Damit der Apache Webserver die Änderungen auch mit bekommt, starten wir auch diesen neu.

root:~/tmp# systemctl restart apache2

Dokumentation