Centos 7.7 (1908) de Python 2.7 ile Oracle db ye baglanti saglanmasi.

1 – Önce oracle client yüklenir. Sonra aşağıdaki komutlar çalıştırılır;

yum install libaio
echo "/usr/lib/oracle/11.2/client64/lib" >/etc/ld.so.conf.d/oracle.conf
ldconfig
yum install epel-release
yum install gcc python-pip.noarch python-devel
pip install cx_Oracle

2 – Eğer son satırdaki “pip” paketi yüklü değilse hata verecektir. Paketi aşağıdaki gibi yüklüyoruz;

yum install gcc openssl-devel bzip2-devel
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python2.7 get-pip.py
pip install cx_Oracle

Python ile oracle db ye bağlantının test edilmesi:

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import cx_Oracle
conn_str = "PROXXX/PROXXX@192.168.1.XXX:1521/XX"
conn = cx_Oracle.connect(conn_str)
c = conn.cursor()
c.execute("SELECT * FROM PRO_XXX_RESERVATIONINFO WHERE ROWNUM <= 10")
for row in c:
    print row[0], "-", row[1], "-", row[2], "-", row[3], "-", row[4]
conn.close()

Kaynaklar:

1 – https://tecadmin.net/install-python-2-7-on-centos-rhel/

2 – https://www.mylinuxplace.com/install-cx_oracle-on-centos-7/

Zabbix (3.4.8,Ubuntu) üzerinde Python’dan Oracle’a bağlantı için cx_Oracle kurulumu ve test edilmesi.

cx_oracle kurulumu
1 – pip kurulumu yapılır:
sudo apt-get install python3-pip python3-dev build-essential
sudo pip install –upgrade pip
sudo pip install –upgrade virtualenv
2 – pip install cx_Oracle

python ile test (oracle.py):

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import cx_Oracle

conn_str = “PROXXX/PROXXX@192.168.XXX.XXX:1521/VX8”
conn = cx_Oracle.connect(conn_str)
c = conn.cursor()
c.execute(“SELECT PG.ADI, PG.SOYADI, PG.VERILENODANO, PG.GELISTARIHI, PG.AYRILISTARIHI FROM PRO_XXX PG ORDER BY PG.VERILENODANO”)
for row in c:
print (row[0], ‘-‘, row[1], ‘-‘, row[2], ‘-‘, row[3], ‘-‘, row[4])
conn.close()

Zabbix (3.4.8,Ubuntu) üzerine Oracle 11.2 için “Oracle Client” kurulumu, php ile test edilmesi.

Oracle client kurulumu

Önce buradan basic, devel ve sqlplus rpm paketleri indirilir. Sonra alttaki adımlardan devam edilir.

1 – Zabbix e WinSCP ile bağlanıp home klasöre oracle dosyaları atılır. (.rpm dosyaları)
2 – Sonra apt-get update & apt-get install -y gcc ntp alien unzip php7.0-dev kurulur.
3 – Restart önerilir : shutdown -r now
4 – kok teki oracle dosyaları (rpm ler) alien -i oracle-basic,devel ve sqlplus olarak TEKER TEKER kurulur.
5 – sqlplus PROXXX/PROXXX@192.168.xxx.xxx/VX8 veya sqlplus64 PROxxx/PROxxx@192.168.xxx.xxx/Vx8 komutlarıyla test edildiğince eğer hata alınıyorsa,
5.1 export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} komutu uygulanır.
5.2 sudo nano /etc/profile.d/oracle.sh && sudo chmod o+r /etc/profile.d/oracle.sh ve içine
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export PATH=$PATH:$ORACLE_HOME/bin
satırları girilir.
5.3 sudo nano /etc/ld.so.conf.d/oracle.conf && sudo chmod o+r /etc/ld.so.conf.d/oracle.conf && ldconfig
ve içine
/usr/lib/oracle/11.2/client64/lib/
yazılır.
6 – Restart önerilir : shutdown -r now

Sonrasında OCI kurulumu :
1 – Dosya kok e atılır oci8-2.1.8.tgz (öncesinde bu dosya internetten indirilir)
2 – tar -xzvf oci8-2.1.8.tgz ile açılır
3 – cd oci8-2.1.8 ile klasore girilir
4 – phpize yapılır
5 ./configure –with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
6 – make yapılır
7 – make install yapılır.
8 – /usr/lib/php/20151012/oci8.so da dosyanın olduğu kontrol edilir.
9 – /etc/php/7.0/cli/php.ini ve /etc/php/7.0/apache2/php.ini açılır ve [OCI8] yazan yerin altına “extension=oci8.so” eklenir
10 – “service apache2 restart” yapılır.
11- VE KURULUM BİTTİ… 🙂

PHP de test edip kontrol :

<?php

ini_set(‘display_errors’, 1);
ini_set(‘display_startup_errors’, 1);
error_reporting(E_ALL);

$conn = oci_connect(‘PROXXX’, ‘PROXXX’, ‘//192.168.XXX.XXX:1521/VX8’);

$stid = oci_parse($conn, ‘SELECT PG.ADI, PG.SOYADI, PG.VERILENODANO, PG.GELISTARIHI, PG.AYRILISTARIHI FROM XXXXXX PG’);
oci_execute($stid);

echo “<table>\n”;
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo “<tr>\n”;
foreach ($row as $item) {
echo ”  <td>”.($item !== null ? htmlentities($item, ENT_QUOTES) : “&nbsp;”).”</td>\n”;
}
echo “</tr>\n”;
}
echo “</table>\n”;

?>