Centos ile oracle veri tabanına bağlantı yapabilmek için öncelikle centos işletim sistemine bir php uzantısı olan OCI8 eklenmesi gerekir. Php ile oracle veritabanına erişim sağlayabilmek için Oracle Instant Client arşivini kurmak gerekir. Bu arşivleri kurduktan sonra oci8 uzantısı pecl ile kurulur. Pecl uzantısı, centos kurulumunda özel ayarlamalar yapmadıysanız centos ile birlikte gelmektedir. Pecl kurulu ise kurulum için aşağıdaki adımları uygulayın.

İlk olarak kütüphane kurulumu için rpm dosyalarını sunucuya yüklemeniz gerekir. Rpm dosyalarına bu sayfadan ya da aşağıdaki bağlantıdan ulaşabilirsiniz.

Instant Client Basic RPM

  • Instant Client Basic paketi, OCI, OCCI ve JDBC-OCI uygulamalarının çalışması için gereken tüm dosyaları içerir.
wget https://get.kadirhanoglu.com/rpm/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm


Instant Client SDK RPM

  • Instant Client SDK paketi, geliştiriciler için ek olarak üst bilgi dosyaları ve örnek makefile dosyalarını içerir.
wget https://get.kadirhanoglu.com/rpm/oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm


RPM dosyalarının kurulumu için dosyaları çektiğiniz dizinde aşağıdaki komutları uygulayarak rpm dosyalarını sunucuya yüklüyoruz. 100% olarak kurulum tamamlanıncaya kadar bekleyin. ( En fazla 2 dk )

rpm -Uvh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm


rpm -Uvh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm


RPM dosyaları kurulduktan sonra kütüphane yolunu sistem profiline ekliyoruz.

vim  ~/.bash_profile


Profil dosyasını vi ile açtıktan sonra, PATH=$PATH:$HOME/bin satırının üzerine aşağıdaki yolları ekleyin.

ORACLE_HOME=/usr/lib/oracle/12.1/client64;
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;


Düzenleme sonrası dosyanın olması gereken hali aşağıdaki gibidir.

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

ORACLE_HOME=/usr/lib/oracle/12.1/client64;
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

PATH=$PATH:$HOME/bin

export PATH


Burada dikkat edilmesi gereken konu, eğer işletim sistemi 32 bit ise kodlarda yer alan client64 klasörünün adı client olmalıdır. Aksi takdirde yolu göremez ve oracle bağlantısı sağlanamaz.

Dosyayı kaydedip kapattıktan sonra web sunucusunu yeniden başlatın.

service httpd restart



OCI8 Uzantısının Kurulumu


Son olarak gerekli olan oracle kütüphanesi kurulduktan sonra oci8 uzantısını pecl ile kurarak aktif hale getiriyoruz.

pecl install oci8


ya da bu bağlantıdaki son stable versiyon numarasına göre aşağıdaki komut satırını uygulayabilirsiniz.

pecl install oci8-2.0.10


Kurulum sırasında size Oracle Instant Client kütüphanesinin yolunu soracaktır.

Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] :


Buraya kütüphane yolunu girdikten sonra enter tuşuna basıp geçiyoruz.

Girilecek olan kütüphane yolu

instantclient,/usr/lib/oracle/12.1/client64/lib



TNS ile Uzak Oracle Sunucusuna Bağlantı

Uzakta olan oracle veri tabanı sunucusuna bağlantı yapabilmek için tns admin bilgilerine sahip olmanız gerekir. Bu bilgiler, uzak sunucu adresi ya da ip'si, srid, ve port bilgileridir.

Örnek tnsnames.ora;

KADIR =
        (DESCRIPTION =
                (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 33005))
                (CONNECT_DATA =
                        (SERVER = DEDICATED)
                        (SERVICE_NAME = KADIR)
                )

        )

tnsnames.ora dosyasını centos üzerinde oluşturacağınız dizin etc olmalıdır. usr klasörü altında bulunan oracle dizini içinde oluşurursanız, dizin yetkileri nedeniyle burada çalışmama durumu söz konusudur.

etc Klasörüne geçiş yapıyoruz.

cd /etc


tnsnames.ora dosyasını oluşturuyoruz.

vi tnsnames.ora


Bilgileri olması gerektiği gibi düzenledikten sonra gerekli kodları yapıştırıyoruz.

KADIR =
        (DESCRIPTION =
                (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 33005))
                (CONNECT_DATA =
                        (SERVER = DEDICATED)
                        (SERVICE_NAME = KADIR)
                )

        )


Dosyayı kaydedip çıkın.

Tekrar profil dosyasını düzenliyoruz. Burada tnsnames.ora dosyasının yolunu gösteriyoruz.

vim  ~/.bash_profile


TNS_ADMIN satırını profil dosyasında bulunan oracle dizinlerinin altına ekleyip dosyayı kaydettikten sonra çıkıyoruz.

TNS_ADMIN=/etc


Tekrar web sunucusunu başlatarak kontrolleri sağlıyoruz.

service httpd restart