PHP merupakan salah satu bahasa pemrograman yang paling banyak digunakan untuk website, kemudian Oracle Database adalah RDBMS yang paling banyak dipilih dan dipakai oleh perusahaan-perusahaan besar karena memiliki tingkat skalabilitas yang tinggi. Nah untuk menghubungkan PHP dengan Database Oracle bukanlah hal yang tidak mungkin, karena PHP memiliki extension OCI8 yang bisa kita gunakan untuk mengkoneksikan ke Database Oracle 12c, 11g, dll.
Kemudian bagaimana cara menghubungkan web yang kita miliki dengan Database Oracle? berikut ini langkah-langkahnya :
Baca Juga : Membuat Koneksi Database MySQL dengan PHP dan MySQLi
Note : Kebetulan disini saya menggunakan Database Oracle XE 11G
Install Extension
Extension ini kita install pada web server, disini saya menggunakan sistem operasi Ubuntu dan Web Server Nginx, tapi secara prinsip jika menggunakan sistem operasi lain seperti CentOS ataupun web servernya menggunakan Apache, proses nya tidak berbeda, paling hanya lokasi path saja yang berbeda
1. Download instantclient-basic-linux.zip dan instantclient-sdk-linux.zip pada link berikut
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
Silakan sesuaikan dengan versi Database Oracle yang digunakan, jika sudah didownload, silakan extract kedua file zip tersebut
2. Buat folder bernama /opt/oracle, selanjutnya pindahkan folder hasil extract kedua file diatas ke dalam folder /opt/oracle/
mv instantclient_11_2 /opt/oracle/instantclient mv instantclient_11_2/sdk /opt/oracle/instantclient/
3. Install dependensi tambahan seperti php-pear, build-essential dan libaio1
apt install php-pear build-essential libaio1 -y
4. Buat symlink terhadap file libclntsh.so.11.1 dan libocci.so.11.1, lalu ubah owner folder tersebut
ln -s /opt/oracle/instantclient/libclntsh.so.11.1 /opt/oracle/instantclient/libclntsh.so ln -s /opt/oracle/instantclient/libocci.so.11.1 /opt/oracle/instantclient/libocci.so chown root:www-data /opt/oracle/ -R
5. Generate shared library baru untuk instantclient supaya mudah digunakan oleh PHP nya
echo /opt/oracle/instantclient > /etc/ld.so.conf.d/oracle-instantclient.conf ldconfig
6. Selanjutnya kita install OCI8 menggunakan pecl
pecl install oci8
7. Kemudian jalankan command berikut untuk mengaktifkan oci8 pada file php.ini pada folder fpm dan cli PHP untuk mengaktifkan extension oci8
echo "extension = oci8.so" >> /etc/php/7.2/fpm/php.ini echo "extension = oci8.so" >> /etc/php/7.2/cli/php.ini
8. Selanjutnya jalankan command berikut agar library instantclient auto generate ke foder yang semestinya ketika reboot
echo "LD_LIBRARY_PATH=\"/opt/oracle/instantclient\"" >> /etc/environment echo "ORACLE_HOME=\"/opt/oracle/instantclient\"" >> /etc/environment
9. Restart service php7.2-fpm dan nginx nya untuk apply extension oci8 nya
service php7.2-fpm restart service nginx restart
10. Saat ini semestinya extension oci8 sudah aktif, untuk memastikan silakan jalankan command berikut, dan pastikan muncul tulisan oci8
php -m | grep oci8
Koneksi ke Database Oracle dan Menggunakan Fungsi Extension OCI8
1. Buat sebuah file bernama koneksi.php, dan isi sintax berikut
<?php $username = "rizky"; $password = "passworduserschema"; $host = "localhost"; $port = "1521"; $db = "(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = ".$host.")(PORT = ".$port."))(CONNECT_DATA=(SID=xe)))"; $connect = oci_connect($username, $password, $db); if (!$connect) { echo "Koneksi ke server database gagal dilakukan"; } else { echo "Koneksi ke Database Oracle Berhasil"; } ?>
Dari script diatas, saya membuat beberapa variable seperti $username, $password, $host, $port, $db.
$username silakan isi username/schema yang ada pada Oracle, $password isikan password user/schema, $host isikan alamat host oracle, kalau berada pada sistem itu juga, isikan localhost, jika beda server, isikan alamat IP nya, $port isikan port Oracle, defaultnya 1521, jika custom, silakan disesuaikan.
kemudian karena pada Database Oracle, structur nya berbeda dengan MySQL, pada Oracle menggunakan user/schema dengan banyak table didalamnya, jadi pada variable $db bukan berisi nama Database nya, melainkan berisi informasi Host, Port, serta koneksi data nya yang biasa menggunakan SID=xe.
Untuk test apakah koneksi berhasil atau tidak, silakan akses file koneksi.php tersebut menggunakan browser, jika konfigurasi benar, akan muncul seperti berikut.
Selanjutnya coba kita ubah value pada $password, lalu refresh, pasti akan menampilan pesan koneksi ke database gagal seperti berikut
Proses pembuatan file koneksi ke Oracle pada PHP sudah selesai, nantinya file koneksi.php tersebut bisa diincludekan ke file-file PHP lainnya yang membutuhkan koneksi ke Database Oracle juga
Cukup mudah bukan? mungkin cukup sekian, semoga bermanfaat
Rizky Pratama. Tinggal di Bekasi, Jawa Barat. Seorang IT di salah satu perusahaan IT. Pengguna Mac, Linux dan Windows
Selain sebagai penulis di blog ini, saya juga penulis di blog saya yang lain, yaitu https://pratama.biz.id
Pada bulan April 2024 lalu, Ubuntu telah release versi terbaru yaitu Ubuntu 24.04 LTS, sehingga…
Ngga nyangka akhirnya saya bisa login kembali ke blog saya yang sudah berdebu ini, kali…
Beberapa waktu lalu, Excellent mendapatkan project migrasi Zimbra dari versi Open Source Ke Zimbra Network…
Bulan Oktober 2022 lalu, Apple resmi release MacOS terbaru mereka, yaitu MacOS Ventura. Beberapa fitur…
Tidak terasa sudah cukup lama saya tidak update tulisan pada blog ini lagi, akhirnya kali…
Tahun baru 2022 telah tiba, tidak terasa waktu berjalan begitu cepat, banyak cerita dan kenangan…