LaGiPusHinGWitH ---- IT

Navigation

Home |

Categories

Monthly Archives

Most recent entries

Syndicate

Site Credits

Powered by:
ExpressionEngine

Design by:
BlogMoxie

Koneksi PHP ke Oracle 10g

Langsung aja, gw mo share pengalaman waktu melakukan konfigurasi buat koneksi PHP dengan Oracle dikantor gw…
Pertama gw ceritain arsitektur dari aplikasi yang akan gw bikin :

1. SQL Server berada pada database server dengan IP 172.17.50.XX
2. Web Server dengan Apache dan PHP dengan IP 172.17.50.XX
3. Oracle berada pada database server dengan IP 192.168.0.XXX dan 192.168.0.XX
4. Semuanya dihubungkan dengan gateway (sori IP nya ngga bisa disebutkan).

So...kesimpulannya semua database tidak berada pada satu mesin (tanya kenapa??? mana gw tahu bukan gw yang bikin sih...tapi kayanya berhubungan dengan security deh).

Terus...kita lanjut lagi ke curhatan gw, sampe mana yah? oh yah sampe MY GOD, THAT’s so Hard ;o Man!!!, Why??? jarang banget tutorial tentang PHP dengan Oracle ditambah PHP manual juga belum banyak membantu (soalnya gw nya buta banget).

Ok...gw tambahin deh spek dari Oracle Servernya sendiri menggunakan Oracle 9i dan 8i dan dikomputer web server terinstall Oracle Client 7.3.3, fungsi dari Oracle Client adalah sebagai penghubung ke Oracle server...nah disinilah letak TrouBLE utamanya, pertama gw coba ikutin dari PHP manualnya gimana cara mengaktifkan modul Oracle supaya didukung oleh PHP:

--// Buka “;"pada (php.ini)
;extension=php_oci8.dll
;extension=php_oracle.dll

penjelasannya sih gampang man...tapi ternyata ngga semudah itu!! Sampai puyeng pale gw tetep ngga berfungsi tuh modul, dengan peringatan tidak ditemukan oci.dll pada OS kita (padahal ada), iseng gw googling deh nyari file oci.dll n nemu juga akhirnya disertai dengan manualnya:

This dll-file was downloaded
from http://www.dll-files.com
Install notes:

º Use ExpressZIP to extract the file to
º your windows\system directory

n walah berhasil juga ... pas gw copy oci.dll di System32 dan System, PHP mengenali modul oci8 dan oracle Wink ... selesaikah masalah?? not yet man, cos setelah gw coba masukin script penghubung kaya gini nih "

<?php

$c1 = OCILogon("$username","$password","$dbname" );

if ($c1 == false){
echo OCIError($connection)."not connected";
exit;
}
else
{
echo "success connecting to my oracle databases";
}

?>

pesen yang gw dapetin selalu Warning: _oci_open_server: ORA-12154: TNS:could not resolve service name.

Gw googling lagi deh arti dari pesen error itu… ternyata harus ada file tnsnames.ora pada folder oracle yang mengandung konfigurasi yang mengarahkan pada letak dan nama service dari server Oraclenya:

--// catt: semua konfigurasi dah gw edit
JOUNIN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = hostname-or-ipaddress)(Port = 1521))
(CONNECT_DATA =
(SID = sidname)
)
)

hmmm...filenya dah ada dengan konfigurasi bener tuh!!! :\ , trus masalahnya dimana yah??? gw baca lagi deh manual PHP-nya, akhirnya walah...gw ngga liat satu buah statement like this “These functions allow you to access Oracle8 and Oracle7 databases. It uses the Oracle8 Call-Interface (OCI8). You will need the Oracle8 client libraries to use this extension.”

My..GOD that it’s, Oracle8 client libraries to use this extension sedangkan gw pake Oracle7.3.3 client yang memiliki perbedaan konfigurasi dengan Oracle8i dan 9i dimana tidak mengenali parameter SID dan sudah menggantinya dengan parameter SERVICE_NAME ;o , ya udah akhirnya gw ganti clientnya dengan Oracle9i client dan mengkonfigurasi ulang file tnsnames.ora nya jadi seperti ini:

JOUNIN =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname-or-ipaddress)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = servicename)
)
)

Selesaikah....??? huuuuuuaaaaaaaaa Surprised nangis deh gw, blom bisa juga man!!! hampir asa gw putus nih, mana under presure pula nih :\ , utak-atik lagi deh gw ... ngubek2 php manual sampe masuk forum2 luar n masuk milis… n hasilnya adalah gw nemuin jawabannya, karena Oracle servernya berada pada lain jaringan maka kita harus mendekripsikan terlebih dahulu SERVICE_NAME nya pada script PHP kita, bingung yah??? ya udah gw kasih contoh langsung aja yah....kita edit aja file koneksi.php

<?php

$db = " (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.XXX)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = servicename))
)";

$c1 = OCILogon("username","password",$db);

if ($c1 == false){
echo OCIError($connection)."not connected";
exit;
}
else
{
echo ";success connecting to my oracle databases";
}

?>

Taaaadaaaaaa.....berhasil man, now it will work.

Ok ... sekian dulu kisah perjuangan gw, buat para master sori kl kesannya gw bego banget..tapi emang gw bego sih kl soal ini rasberry , trus kesannya gw sebentar yah ngopreknya..padahal gw ngabisin waktu seminggu lebih cuma buat meng-koneksikan PHP dengan Oracle Server :\ . Trus pesen gw, teruslah bereksperimen...kl nemu masalah cari tahu sendiri dulu deh (googling, forum, milis etc)kl dah mentok banget baru minta bantuan langsung.

Terakhir… buat para programmer PHP, jangan terpaku dengan MySQL!!! cos enterprise banyak menggunakan Oracle dan SQL Server.

OK...Goodluck for Us, see you next time!!!Smile

Posted by roninmorgue on 08/25 at 11:01 PM
Computer DataBase • (1) Comments • (65) TrackbacksPermalink

bang tambahin tag donk...biar enak baca-bacanyua…
okay

Regards

Dian

Posted by dian205  on  10/16  at  10:29 AM
Page 1 of 1 pages

Name:

Email:

Location:

URL:

Smileys

Remember my personal information

Notify me of follow-up comments?