Senin, 25 Januari 2010

Koneksi PHP ke OCI8 di XAMPP for Windows (3)

Alhamdulillah..

Setelah melalui jalan panjang yang melelahkan .. :D, masalah koneksi php-oci8 di XAMPP versi 1.7.3 akhirnya tersolusikan.

Perlu teman ketahui, sebelumnya di laptop saya sudah saya install oracleclient versi 8i. Tetapi berhubung di manual XAMPP dan beberapa referensi yang saya baca menyebutkan untuk oci8 di XAMPP menggunakan instantclient (versi >= 10) maka oracleclient 8i saya uninstall.

Akhirnya, coba-coba saya install ulang oracleclient 8i, setelah instalasi selesai. Instalasi saya letakkan di direktori C:\oracle. Setelah instalasi selesai, mengacu pada referensi yang saya temukan sebelumnya (baca Koneksi PHP ke OCI8 di XAMPP for Windows (1) ) , maka saya cari file oci.dll di direktori instalasi oracleclient. Saya temukan file tersebut di C:\oracle\bin. Kemudian file oci8.dll saya copy-kan ke direktori xampp yaitu di C:\xampp\xampp\apache\bin. Setelah xampp saya stop-start, ternyata warning PHP Startup: Unable to load dynamic library 'C:\xampp\xampp\php\ext\php_oci8.dll' - The specified procedure could not be found. muncul kembali.

Selanjutnya file oci8.dll saya hapus, dan saya cari lagi file yang mirip-mirip di C:\oracle\bin. Saya temukan file dengan nama ociw32.dll. Saya copy-kan file tersebut di C:\xampp\xampp\apache\bin. Setelah saya stop-start xampp, selanjutnya saya cek phpinfo() dan muncul entry oci8. Selanjutnya saya test dengan script sederhana untuk koneksi ke oracle....dan......test sukses....

Alhamdulillah, selanjutnya tinggal membuat script aplikasi yang sesungguhnya...

Koneksi PHP ke OCI8 di XAMPP for Windows (2)

Melanjutkan tulisan saya sebelumnya yaitu Koneksi PHP ke OCI8 di XAMPP for Windows (1) akhirnya saya membuat script sederhana untuk test koneksi dari php ke database oracle. Saya yakin test akan berhasil, karena dari info phpinfo() di laptop saya, sudah muncul entry oci8 yang menandakan fungsi php-oci8 sudah running di laptop saya.

Tapi ada daya, manusia boleh berharap, Allah yang menentukan, hasilnya kenyataan tidak selalu seperti yang diharapkan. Test gagal total (bahasanya ABG sih gatot). Muncul Warning: ocilogon() [function.ocilogon]: OCIEnvNlsCreate() failed

Oh my god, error apa lagi nih....? Apalagi yang kurang...?
Kesimpulanku sementara, sepertinya XAMPP memang tidak disiapkan untuk 'secara mudah' untuk ber-interoperability dengan database oracle...

Hasil googling sementara, ada yang mensolusikan dengan mengganti XAMPP versi 1.5.x, tetapi belum saya coba....

Bersambung....

Koneksi PHP ke OCI8 di XAMPP for Windows (1)

Untuk mengerjakan salah satu proyek di unit saya, saya perlu melakukan instalasi apache, php (support soap) dan koneksi ke oracle dengan oci8 di laptop saya yang menggunakan operating system Windows XP. Akhirnya saya pilih xampp. Xampp saya download dari http://www.apachefriends.org/en/xampp.html. Saya pilih XAMPP Windows 1.7.3 Basic Paket.

Kemudian sesuai manual yang ada, xampp saya install di (C:\xampp) dan sangat mudah proses instalasinya. Setelah selesai, dengan dag..dig..dug saya coba hasil dari instalasi tersebut. Pertama saya lakukan start apache, hasilnya sukses. Selanjutnya saya cek web server dengan http://127.0.0.1/ dan terpampang tampilan halaman XAMPP for Windows yang menandakan fitur web server (apache) dari xampp berfungsi dengan baik.

Selanjutnya untuk mengetahui fungsi php apa saja yang terinstall, saya cek melalui menu phpinfo() yang tersedia di tampilan awal XAMPP tersebut. Library soap telah terinstall, dan tinggal di test. Dengan script sederhana, hasil test library soap menunjukkan soap berfungsi dengan sempurna.

Tinggal satu yang kurang, yaitu menambahkan php dengan fungsi oci8 untuk koneksi ke database oracle. Dari hasil googling yang saya dapatkan, sebagian besar menyebutkan untuk mengaktifkan library oci8 php di xampp adalah dengan membuang comment (tanda ;) di depan kata-kata ;extension = php_oci8.dll di file php.ini, disamping syarat utama yaitu oracle client sudah diinstall di komputer (saya menggunakan instanclient 10.2.0.3 yang download dari http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html dan saya unzip di C:\instantclient_10_2).

Setelah semua langkah saya ikuti, dan apache sudah saya stop-start ternyata muncul warning PHP Startup: Unable to load dynamic library 'C:\xampp\xampp\php\ext\php_oci8.dll' - The specified procedure could not be found.

Googling selama 2 hari tidak menemukan solusi yang manjur, hingga akhirnya hari ini saya mendapatkan entri yang benar-benar mensolusikan masalah saya. Solusi ini saya dapat dari http://dudesdoingdotnet.blogspot.com/2008/09/xampp-with-oracle-ocidll-not-found.html. Solusi untuk masalah ini yaitu dengan copy file oci.dll dari C:\instantclient_10_2 ke direkrori C:\xampp\xampp\apache\bin. Selanjutnya saya lakukan stop-start apache, dan alhamdulillah, warning sudah tidak muncul lagi. Cek di phpinfo, oci8 sudah muncul yang menandakan library oci8 sudah berfungsi. Selanjutnya tinggal test dengan script php-nya....

Bersambung....