Php ile oracle veritabanlarına bağlanmaya balıştığınızda aşağıdaki gibi bir hata alıyorsanız çözümü bu yazıda bulabilirsiniz.
<?php $dbconn = pg_connect("host=localhost port=5432 dbname=testdb user=testusr password=12345");
Fatal error: Call to undefined function oci_connect() in /var/www/html/index.php on line 3
İlk olarak oracle download sayfasından ihtiyacınız olan client sürümünü indirebilirsiniz. Basic ve sdk paketini mutlaka indirmelisiniz. Diğer paketleri ihtiyacınız doğrultusunda indirebilirsiniz. Ben aşağıdaki tüm paketleri indirdim.
instantclient-basic-linux.x64-19.3.0.0.0dbru.zip instantclient-sqlplus-linux.x64-19.3.0.0.0dbru.zip instantclient-tools-linux.x64-19.3.0.0.0dbru.zip instantclient-sdk-linux.x64-19.3.0.0.0dbru.zip instantclient-jdbc-linux.x64-19.3.0.0.0dbru.zip instantclient-odbc-linux.x64-19.3.0.0.0dbru.zip
İndirdiğiniz tüm paketleri /opt/oracle dizini altına çıkartın.
# mkdir /opt/oracle # unzip instantclient-basic-linux.x64-19.3.0.0.0dbru.zip -d /opt/oracle/ # unzip instantclient-sqlplus-linux.x64-19.3.0.0.0dbru.zip -d /opt/oracle/ # unzip instantclient-tools-linux.x64-19.3.0.0.0dbru.zip -d /opt/oracle/ # unzip instantclient-sdk-linux.x64-19.3.0.0.0dbru.zip -d /opt/oracle/ # unzip instantclient-jdbc-linux.x64-19.3.0.0.0dbru.zip -d /opt/oracle/ # unzip instantclient-odbc-linux.x64-19.3.0.0.0dbru.zip -d /opt/oracle/ # ls /opt/oracle instantclient_19_3 # mv instantclient_19_3 instantclient
Dizin yapısı yukarıdaki gibi olacaktır.
Eğer httpd kullanıyorsanız aşağıdaki dosyaların en altına ilgili komutları kopyalayın.
# cat /etc/sysconfig/httpd LD_LIBRARY_PATH=/opt/oracle/instantclient PATH=/opt/oracle/instantclient:$PATH ORACLE_HOME=/opt/oracle/instantclient
# cat /etc/bashrc export LD_LIBRARY_PATH=/opt/oracle/instantclient export PATH=/bin:/opt/oracle/instantclient:$PATH export ORACLE_HOME=/opt/oracle/instantclien
Bu ayarlamaları yaptıktan sonra oci8 modülü kurulması gerekmektedir. Bu modülü pecl veya remi repository’i tanıtarak yum install şeklinde kurabilirsiniz. pecl ile aşağıdaki şekilde kurabilirsiniz.
# pecl download oci8 # tar -zxf oci8-1.4.10.tgz # cd oci8-1.4.10
phpize ile paketi kurulum için hazırlamak gerekiyor. phpize kurulu değilse yum install phpize şeklinde kurabilirsiniz.
# phpize
# ./configure -with-oci8=shared,instantclient,/opt/oracle/instantclient veya # ./configure -with-oci8=shared,$ORACLE_HOME
Son aşama olarak paket kurulumunu aşağıdaki gibi gerçekleştirebilirsiniz.
# make install