Setelah sekian lama kami berkutat di lingkungan PHP 5.6, akhirnya kami memutuskan untuk migrasi ke PHP 7. Tentu saja diperlukan webserver baru untuk menampung semua aplikasi yang kami buat. Dengan berbagai pertimbangan, kami memutuskan menggunakan sistem operasi Ubuntu 20.04. Pertama, karena sudah default bersanding dengan PHP 7.4. Dan kedua, LTS.

Setelah setup OS, Apache, dan PHP 7.4 dengan mudah, sampai di saat yang terbilang menantang, yaitu instalasi Oracle Client, agar web PHP bisa terkoneksi dengan database Oracle. Berikut langkah-langkahnya:

0. Prasyarat

  • Ubuntu 20.04 LTS
  • Sudah terinstal Apache dan PHP 7.4
  • Terkoneksi jaringan internet
  • memiliki akses root atau sudoers

NB: Sebagian besar perintah di bawah ini diakses menggunakan login user root atau awali setiap perintah dengan sudo.

1. Download dan extract oracle client

Silahkan download dan extract dua file berikut:

instantclient-basic-linux.x64–12.2.0.1.0.zip
instantclient-sdk-linux.x64–12.2.0.1.0.zip

atau gunakan command berikut

# cd /home 
# wget https://raw.githubusercontent.com/pwnlabs/oracle-instantclient/master/instantclient-basic-linux.x64-12.2.0.1.0.zip 
# wget https://raw.githubusercontent.com/pwnlabs/oracle-instantclient/master/instantclient-sdk-linux.x64-12.2.0.1.0.zip 
# unzip instantclient-basic-linux.x64-12.2.0.1.0.zip 
# unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip

2. Instalasi Oracle Client ke OS

Buat sebuah folder /opt/oracle dan pindahkan folder hasil extract tadi ke folder tersebut

# mkdir /opt/oracle
# mv instantclient_12_2 /opt/oracle/instantclient

Ubah owner folder tersebut

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

3. Instalasi Oracle Client ke PHP 7.4

Install dependency yang dibutuhkan untuk mendaftarkan oracle client ke PHP

# apt-get install php7.4-dev php-pear build-essential libaio1

Buat symbolic link sebelum instalasi

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

Tambahkan instantclient folder ke ldconfig, lalu lakukan update ldconfig

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

Lakukan instalasi OCI8

# pecl install oci8

INI PENTING! Saat ditanyakan konfigurasi oracle, isikan instantclient,/opt/oracle/instantclient

Daftarkan oci8 ke dalam php.ini

# echo " extension = oci8.so " >> /etc/php/7.4/cli/php.ini
# echo " extension = oci8.so " >> /etc/php/7.4/apache2/php.ini

4. Finalisasi instalasi Oracle Client

Setting environment yang dibutuhkan oracle client

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

Restart Apache

# service apache2 restart

5. Testing

Buat sebuah file php di /var/www/html/ misal info.php

# echo "<?php phpinfo(); ?>" >> /var/www/html/info.php

Buka halaman tersebut menggunakan browser http://<domain atau ip server>/info.php kemudian pastikan blok oci8 sudah aktif

oci8-12

Sekian, jika ada pertanyaan silahkan saja kirimkan melalui kolom komentar di bawah.

Sumber:

  • https://medium.com/@dhanza/setup-apache2-php-oci8-on-ubuntu-20-04-d9e5b400f3fa
  • https://github.com/pwnlabs/oracle-instantclient