Install oracle client oci8 di linux ubuntu

Sebelum kita membuat (compile) extension oci8.so maka kita harus mempersiapkan environment-nya dulu, dalam hal ini saya menggunakan apache2 dan php 7.2.0 di linux ubuntu 18.04. Jika environment sudah siap, silahkan ikut langkah berikutnya, yaitu:

1. Unduh (download) instantclient oracle yang basic, dalam hal ini saya menggunakan instantclient-basic-linux.x64-12.2.0.1.0.zip dan instantclient sdk, dalam hal ini saya menggunakan instantclient-sdk-linux.x64-12.2.0.1.0.zip pada website oracle. Jangan lupa untuk menyesuaikan dengan environment Anda.

2. Letakkan kedua file tersebut pada sebuah folder.

/var/opt

3. Extract/Unzip kedua file tersebut, selanjutnya Anda akan mendapatkan sebuah folder, dalam hal ini saya mendapatkan folder instantclient_12_2.

4.a. Buat sebuah folder baru dengan perintah.

mkdir /opt/oracle

4.b. Pindahkan dan ubah nama folder instantclient dengan perintah.

mv instantclient_12_2 /opt/oracle/instantclient

4.c. Ubah otoritas folder.

chown -R root:www-data /opt/oracle

5. Cek paket (packages) yang dibutuhkan untuk membuat oci8.

apt install php7.2-dev php-pear build-essential libaio1

6. Buat tautan (link) yang diperlukan.

ln -s /opt/oracle/instantclient/libclntsh.so.12.1 /opt/oracle/instantclient/libclntsh.so

7.a. Tambahkan instantclient ke file ld config.

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

7.b. Perbarui (update) ld config.

ldconfig

8.a. Selanjutnya install oci8 menggunakan pecl.

pecl install oci8

8.b. Instalasi oci8 akan meminta Anda input folder instantclient yang benar.

instantclient,/opt/oracle/instantclient

9.a. Tambahkan oci lib ke cli php (console php).

echo "extension = oci8.so" >> /etc/php/7.2/cli/php.ini

9.b. Tambahkan oci lib ke apache php.

echo "extension = oci8.so" >> /etc/php/7.2/apache2/php.ini

10.a. Set environment variables untuk cli (Anda perlu melakukan reboot / restart setelahnya).

echo "LD_LIBRARY_PATH=\"/opt/oracle/instantclient\"" >> /etc/environment
echo "ORACLE_HOME=\"/opt/oracle/instantclient\"" >> /etc/environment

10.b. Set environment variables untuk apache.

echo "export LD_LIBRARY_PATH=\"/opt/oracle/instantclient\"" >> /etc/apache2/envvars
echo "export ORACLE_HOME=\"/opt/oracle/instantclient\"" >> /etc/apache2/envvars

11. Restart apache

service apache2 restart

12. Selesai, selanjutnya Anda bisa melakukan koneksi ke server database oracle.

<?php
// Buat koneksi ke oracle, ganti host dan sid!
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 000.000.000.000)(PORT = 1521)))(CONNECT_DATA=(SID=XXX)))";

// Ubah DBUSER dan PASSWORD sesuai dengan username dan password Anda!
$conn = oci_connect("DBUSER", "PASSWORD",$db);

if (!$conn) {
   $m = oci_error();
   echo $m['message']. PHP_EOL;
   exit;
}
else {
   print "Database oracle terkoneksi". PHP_EOL;
}
?>

Jika terjadi:

error ORA-24408: could not generate unique server group name

Pastikan nama host (hostname) Anda sudah tepat, misalnya 127.0.0.1 localhost atau 127.0.0.1 nama_hostname. Lakukan pengecekan pada file berikut:

/etc/hostname
/etc/host
/etc/sysconfig/network

Catatan kaki:
  • Gambar sampul diambil dari: rizkypratama.id

Jika bermanfaat, follow dan share ya...

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Jika bermanfaat, follow dan share ya...