Pythontr

husonet | Tarih: 05.04.2017

PHP ile Oracle Bağlantısı

Linux sunucu üzerinde gerekli kütüphanelerin yapılandırılması ve PHP üzerinden Oracle bağlantı işlemi

Adım 1


Sunucunuz üzerine öncelikle Oracle sitesi üzerinden gerekli kütüphanelerinizi indirmeniz gerekiyor. Daha önce bu işlemi nasıl yapılacağını açıklamıştık bu yazımızdan ulaşabilirsiniz. Oracle Kütüphaneleri

Adım 2


PHP extensionu için gerekli paketlerin kurulması.


apt-get install php-pear php5-dev build-essential libaio1

Adım 3


Bu kısım önemli hangi paketi kurmamız gerektiğine kullanmış olduğumuz PHP versiyonuna bakarak karar vermemiz gerekiyor.


php -v
PHP 5.4.45-0+deb7u8 (cli) (built: Mar 27 2017 22:43:09)

Bizim kullandığımı versiyon PHP 5.4 olduğu için PHP 5.2 - PHP 5.6 aralığına girmektedir bu yüzden aşağıdaki kod satırını çalıştırmanız gerekmektedir.


pecl install oci8-2.0.12

PHP 7
pecl install oci8

PHP 4.3.9 - PHP 5.1.
pecl install oci8-1.4.10

Kurulum işleminde size Oracle pathini soracak onuda /etc/ld.so.conf.d/oracle.conf dosyası içinden bulabilirsiniz. Ben bu şekilde /u01/app/oracle/product/11.2.0/xe/ verince sorunsuz bir şekilde çalıştırmıştır.


Adım 4


Şimdi php.ini dosyasına oci extensionlarını yükleyelim.
Apache için
echo "extension = oci8.so" >> /etc/php5/apache2/php.ini

Nginx için
echo "extension = oci8.so" >> /etc/php5/fpm/php.ini

Cli için
echo "extension = oci8.so" >> /etc/php5/cli/php.ini

Adım 5


Servisleri restart yapalım
Apache için
service apache2 restart

Nginx için
service php5-fpm restart
service nginx restart

Php içinde kullanmak için ORACLE_HOME ve LD_LIBRARY_PATH ayarlamalarını yapabilirsiniz.


$ORACLE_HOME = '/u01/app/oracle/product/11.2.0/xe';
$LD_LIB = '/u01/app/oracle/product/11.2.0/xe/lib';
putenv("ORACLE_HOME=$ORACLE_HOME");
putenv("LD_LIBRARY_PATH=$LD_LIB");

Codeigniter Oracle Bağlantısı


$active_group = 'default';
$active_record = TRUE;

$tnsname = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))';

$db['default']['hostname'] = $tnsname;
$db['default']['username'] = 'PYTHONTR';
$db['default']['password'] = 'xxxxx';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
# $db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;