Bu makale ile, günümüzün en yaygın ve kullanışlı linux dağıtımlarından olan Ubuntu üzerinde Oracle bağlantı destekli PHP kurulumu anlatılarak bir sonraki “PHP ile ‘OCI Client Result Cache’ (Sorgu sonuçlarının İstemci(webserver) tarafında tutulması)“ konulu makalenin uygulanabilmesi için hazırlık yapılması amaçlanmıştır.
Bir terminal açınız ve aşağıdaki sudo komutunu yazarak sistem yöneticisi hakkını alınız.
# sudo -i
Aşağıdaki komut apache’nin son sürümünü yükleyecektir.
# apt-get install apache2
PHP ve diğer modüllerin kurulumu
# apt-get install php5-common php5 php5-dev libapache2-mod-php5 php5-cli
# apt-get install build-essential php-pear
# apt-get install libaio1
Aşağıdaki linki kullarak Oracle Instant Client BASIC ve SDK dosyalarını indiriniz.
http://www.oracle.com/technology/tech/oci/instantclient/index.html
Dosyalar muhtemelen kullanıcının masaüstüne kayıt edilecektir.
Aşağıdaki komut ile yeni bir dizin açınız.
# mkdir /opt/oracle
İndirdiğiniz iki dosyayı yeni oluşturulan /opt/oracle klasörüne taşıyınız.
# mv /home/ubuntu/Desktop/*.zip /opt/oracle
Yeni oluşturulan klasöre geçiniz
# cd /opt/oracle
InstantClient dosyalarını aşağıdaki komut ile açınız.
# unzip \*.zip
Unzip işlemi sonunda yeni bir klasör oluşacaktır. Bu klasörün ismini aşağıdaki komut ile değiştiriniz.
# mv instantclient_11_1 instantclient
Yeni klasöre giriniz.
# cd instantclient
Yeni Sembolik linkler oluşturmak için aşağıdaki komutlar çalıştırınız.
# ln –s libclntsh.so.11.1 libclntsh.so
# ln –s libocci.so.11.1 libocci.so
Aşağıdaki komut ile yeni bir klasör oluşturunuz. Bu klasör OCI8 kütüphane dosyalarını içerecektir.
# mkdir /opt/oracle/src
Yeni oluşturulan klasöre geçiniz ve pecl ile OCI8 tar dosyasını indiriniz. Pecl son sürüm OCI8 dosyasını indirecektir. Şuanda son sürüm 1.3.5 dir. 1.3 sürümünden itibaren "Client Result Cache" özelliği kullanılabilmektedir.
# cd /opt/oracle/src
# pecl download oci8
İndirilen OCI8 dosyasını açınız.
# tar xvf oci8-1.3.5.tgz
Yeni oluşan klasöre giriniz.
# cd oci8-1.3.5
phpize komutu, PHP için yeni bir eklenti derlemek gerektiğinde sistemde gerekli hazırlıkların yapılmasını sağlamaktadır. OCI8 Eklentisini derlemek için bu komutu çalıştırınız.
# phpize
Aşağıdaki komutu kullarak ORACLE_HOME çevre değişkenini tanımlayınız.
# export ORACLE_HOME=/opt/oracle/instantclient
OCI8 eklentisinin derlemesi işleminin ilk adımı olarak aşağıdaki configure komutunu çalıştırınız.
# ./configure --with-oci8=share,instantclient,/opt/oracle/instantclient
make komutuyla derlemeyi başlatınız.
# make
Aşağıdaki komut ile oluşan oci8.so dosyasının ilgili klasöre kopyalanmasını sağlayınız.
# make install
PHP ve OCI8 bağlantısının sağlanması için php.ini dosyalarına “extension=oci8.so” satırının eklenmesi gerekmektedir. Aşağıdaki komutlar ile bunu gerçekleştirebilirsiniz.
# echo extension=oci8.so >> /etc/php5/apache2/php.ini
# echo extension=oci8.so >> /etc/php5/cli/php.ini
Apacheyi Yeniden Başlatınız.
# /etc/init.d/apache2 restart
Bu işlemlerden sonra PHP, OCI aracılığıyla Oracle veritabanı bağlantısı yapabilir hale gelmiştir. aşağıdaki örnek kod ile test yapabilirsiniz.
<?php
$c=oci_pconnect('hr','hr','//oracleserver:1521/xe');
$s=oci_parse($c,"select * from hr.employees");
oci_execute($s);
oci_fetch_all($s,$res);
print_r($res);
?>
peki sayın ustam, bi sorum olacak…
oracle client yuklu makine üstünde php+mysql+apache var.
buraya kadar her şey tamam.
ama oracle server baska bir makinada (windows 2003).
oracle client nasıl bağlanacak ona ?
Yorum�Yorumlar yazan: ismail savran — Mart 25, 2009 @ 8:01 am
Yukarıda anlatılan kurulum içinde sizin belirttiğiniz durum geçerli, yani oracle server başka bir makinada.
$c=oci_pconnect(’hr’,’hr’,’//oracleserver:1521/xe’); komutundaki “oracleserver” oracle kurulu makinanin ismi veya ip olabilir. bu ismi değiştirerek bağlantı kurabilirsiniz.
Yorum�Yorumlar yazan: suhanerol — Mart 25, 2009 @ 9:16 am
teşekkürler…
Yorum�Yorumlar yazan: ismail savran — Mart 25, 2009 @ 9:48 am
Ubuntu üzerinde tam olarak yapmak istediğim şey buydu. Apache ve Oracle kurulumu…
Konu için teşekkürler.
Yorum�Yorumlar yazan: Halkın Gündemi — Ekim 29, 2009 @ 11:47 am