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 (tested up to 24.04)
- 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/nandaabiz/oracle-instantclient/master/instantclient-basic-linux.x64-12.2.0.1.0.zip
# wget https://raw.githubusercontent.com/nandaabiz/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
Jika ditemukan error: E: Package ‘libaio1’ has no installation candidate, (di Ubuntu 24.04) silahkan ubah command ke libaio1t64
# apt-get install php7.4-dev php-pear build-essential libaio1t64
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-2.2.0
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
Sekian, jika ada pertanyaan silahkan saja kirimkan melalui kolom komentar di bawah.
Updated to 24.04
Sumber:
- https://medium.com/@dhanza/setup-apache2-php-oci8-on-ubuntu-20-04-d9e5b400f3fa
- https://github.com/pwnlabs/oracle-instantclient
Leave a Reply