Beberapa hari ini saya disibukkan dengan webserver baru untuk development. Karena saya hanya bisa minta virtual server ke si empunya server, alhasil saya diberi sebuah server berbasis Ubuntu 16.04. Tak disangka-sangka server dengan OS Ubuntu terbaru ini sedikit menyulitkan saya untuk melakukan setup webserver. Permasalahan utama yaitu Ubuntu 16.04 tidak mendukung PHP di bawah versi 7. Mulailah pengembaraan saya mencari cara agar kebutuhan untuk web app kami bisa berjalan lancar.
Berikut tutorial instalasi Apache + MySQL + PHP 5.6 + Oracle Client Oci8 di Ubuntu 16.04 (Xenial Xerus) 64bit
0. Prasyarat
- Ubuntu 16.04 64bit
- Terkoneksi jaringan internet
- Akses root atau sudoers
Catatan sebagian besar perintah di bawah ini diakses menggunakan login user root atau awali setiap perintah dengan sudo.
1. Instalasi Apache dan MySQL
Instalasi Apache dan MySQL seperti biasa
# apt-get install apache2 # apt-get install mysql-server libapache2-mod-auth-mysql
Ikuti setiap langkah seperti memasukkan root password mysql dll. Saya tidak membahas lebih detil karena bisa dilihat di sini.
2. Instalasi PHP 5.6
Karena repo Ubuntu 16.04 secara default hanya mensupport PHP7, maka terlebih dahulu kita hapus instalasi PHP7
# apt-get install aptitude # aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "n" " "`
kemudian kita tambahkan repo PHP 5.6 yang berada di ppa
# add-apt-repository ppa:ondrej/php
setelah itu kita dapat memasang PHP 5.6
# apt-get update # apt-get install php5.6
setelah selesai kita bisa mengecek versi PHP dengan cara
# php -v PHP 5.6.21-7+donate.sury.org~xenial+1 (cli) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
3. Instalasi Oracle Client dan module OCI8 untuk PHP
a. Oracle Client
Download Oracle Client Basic dan SDK (jika perlu SQL*Plus) dari halaman download resminya yang berekstensi .rpm saja, nantinya akan kita konversi ke .deb. Setelah itu upload file downloadan ke server (melalui FTP/SCP). Sebenarnya bisa langsung mendownload menggunakan wget, namun saya tidak menemukan link direct downloadnya.
Version 12.1.0.2.0
Instant Client Package – Basic
Download oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm (62,587,782 bytes)
Instant Client Package – SQL*Plus
Download oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm (852,271 bytes)
Instant Client Package – SDK
Download oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm (634,803 bytes)
Setelah terdownload, masuk ke direktori hasil downloadan
# cd /home root@vmachine:/home#
Instal packages yang berekstensi .rpm tadi dengan menggunakan bantuan package alien
# apt-get install alien # alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm # alien -i oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm # alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
Setelah itu export variabel environment oracle untuk mempermudah akses
# export ORACLE_HOME=/usr/lib/oracle/12.1/client64 # export LD_LIBRARY_PATH=$ORACLE_HOME/lib # export PATH=$PATH:$ORACLE_HOME/bin # nano /etc/ld.so.conf.d/oracle.conf && chmod o+r /etc/ld.so.conf.d/oracle.conf
dan tambahkan baris berikut
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
Jika terjadi error /sbin/ldconfig.real: /usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} is not a known library type maka silahkan ubah teks oracle.conf di atas menjadi
/usr/lib/oracle/12.1/client64/lib/
Terima kasih kepada saudara Muhammad Bima
Akhiri dengan menyimpan (Ctrl+X) kemudian Y
# nano /etc/profile.d/oracle.sh && chmod o+r /etc/profile.d/oracle.sh
dan tambahkan baris berikut
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
Akhiri dengan menyimpan (Ctrl+X) kemudian Y
Setelah itu jalankan ldconfig
# ldconfig
b. OCI8 PHP 5.6
Pertama kali kita perlu menginstal PECL dan dependencies nya
# apt-get install php-pear php5-dev libaio1 build-essential php5.6-xml php5.6-dev
Setelah itu kita menjalankan script PECL untuk menginstal OCI 8
# pecl install -Z oci8-2.0.11
Saat instalasi akan ditanyakan Oracle Home Directory, isi dengan lokasi instalasi oracle client
'instantclient,/usr/lib/oracle/12.1/client64/lib'
kita menggunakan oci8 versi 2.0.11 karena versi tersebut mendukung PHP 5.2 – 5.6 menurut situs resminya.
Setelah selesai instalasi OCI8 kita perlu mendaftarkan extension OCI8 ini ke PHP
# locate php.ini /etc/php/5.6/apache2/php.ini /etc/php/5.6/cli/php.ini # echo "extension=oci8.so" >> /etc/php/5.6/apache2/php.ini # echo "extension=oci8.so" >> /etc/php/5.6/cli/php.ini
4. Cek instalasi
Restart server Apache
# service apache2 restart
buat sebuah file php di direktori webserver
$ cd /var/www/html $ nano tesoci.php
isi dengan script untuk mengetes koneksi ke server oracle, misal
<?php $OracleListener = "www.iporacleserveranda.com:1521/SID"; $OracleUsername = "user"; $OraclePassword = "password"; $conn = oci_connect($OracleUsername, $OraclePassword, $OracleListener); if (!$conn) { $e = oci_error(); echo $e; } $sql = "SELECT * FROM MY_TABLE_NAME"; $stmt = oci_parse($conn, $sql); oci_execute($stmt); $row = oci_fetch_array($stmt, OCI_ASSOC+OCI_RETURN_NULLS); foreach ($row as $item) { echo $item; } ?>
Setelah itu tes dengan mengakses halaman tersebut melalui browser
http://www.webserverandayangbarusajadibuat.com/tesoci.php
Sekian, jika ada pertanyaan silahkan saja kirimkan melalui kolom komentar di bawah.
Sumber:
- https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu
- http://askubuntu.com/questions/756181/installing-php-5-6-on-xenial-16-04
- https://help.ubuntu.com/community/Oracle%20Instant%20Client
- http://www.dangtrinh.com/2014/07/how-to-install-oci8-php-extension-in.html
- https://pecl.php.net/package/oci8
- http://serverfault.com/questions/589877/pecl-command-produces-long-list-of-errors
Leave a Reply