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

1 – Aşağıdaki komutları çalıştrıyoruz. En alttaki satirda hata verirse “pip” paketini kuruyoruz (sitede nasıl kurulduğu vardır).

yum install unixODBC unixODBC-devel
yum install gcc-c++
yum install python-devel
pip install pyodbc

2 – Python ile mssql db ye baglantinin test edilmesi;

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

import pyodbc

################## TANIMLAR #####################
dsn = 'mssql_server'
user = 'db_username'
password = 'db_password'
database = 'MXXXXXXS'
################## TANIMLAR #####################

def kullanici_liste():
	con_string = 'DSN=%s;UID=%s;PWD=%s;DATABASE=%s;' % (dsn, user, password, database)
	con = pyodbc.connect(con_string)
	cur = con.cursor()
	cur.execute("SELECT e.firstname, e.lastname,e.posref FROM LOCATION_ACTIVITY_DB.dbo.EMPLOYEE e")
	
	while (1):
		row = cur.fetchone ()
		if row == None:
			break
		print "%s %s " %(row[1],row[2])

kullanici_liste()

Centos 7.7 (1908) de MSSQL baglatisi icin FreeTDS, ODBC kurulumu ve Php 5.4 ile baglantinin saglanmasi.

1 – “yum -y update” ile güncelleme yapalım.

2 – ” yum -y install php-odbc php-pdo unixODBC unixODBC-devel” ile odbc paketlerini kuralım.

3 – Aşağıdaki komutlarla epel ve freetds kuralım;

yum install epel-release
yum check-update
yum install freetds freetds-devel

4 – “/etc/freetds.conf” dosyasını açıp en alta aşağıdaki kodu yapıştıralım;

# Mssql server
[mssql_server]
host = 192.168.1.XXX
port = 1433
tds version = 7.4

5 – Bağlanacağımız sql server ile bağlantımızın olup olmadığını telnet ile kontrol etmekte fayda var;

“telnet 192.168.1.XXX 1433” yazdığımızda servera bağlantı yapabiliyorsak devam ediyoruz. Sistemde telnet yüklü değilse, “yum install -y telnet” ile yüklüyoruz.

6 – ” /etc/odbcinst.ini” dosyasını açıp en alta aşağıdaki kodu yapıştıralım;

[ODBC]
Trace = No
TraceFile = /tmp/sql.log
ForceTrace = No
 
[FreeTDS]
Driver = /usr/lib64/libtdsodbc.so.0
FileUsage = 1 

7 – “/etc/odbc.ini” dosyası varsa açalım, yoksa biz oluşturalım ve dosyanın içine aşağıdaki kodu ekleyelim;

 # Ms sql baglantisi
 [mssql_server]
 Description = mssql baglanti
 Driver = FreeTDS
 Trace = No
 Server = 192.168.1.XXX
 Database = MXXXXXXS (Databese adı)
 Port = 1433

8 – Centos’ta selinux aktif ise (default aktif), aşağıdaki komutlarla http üzerinden mssql bağlantısına izin verelim;

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on

9 – Komut satırıyla bağlantının test edilmesi;

osql -S MyMSSQLServerName -U myusername -P mypassword

PHP ile baglantinin test edilmesi:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
	
$baglanti = odbc_connect("mssql_server","db_username","db_password"); 	
	
 if ($baglanti)
    	    echo "<span style='color:green'>Baglandi</span>"."</br>"; 	
	
$sorgu = odbc_exec($baglanti,"SELECT e.firstname, e.lastname,e.posref FROM LOCATION_ACTIVITY_DB.dbo.EMPLOYEE e");

while( $row = odbc_fetch_array($sorgu) ){
  echo $row["firstname"]." ".$row["lastname"]."<br>";
}

?>

Kaynaklar :

1 – https://fotografia.clerigo.pt/how-to-install-freetds-unixodbc-on-centos-7-with-php-5-6-to-access-sql-server-databases/

2 – http://www.stevepiercy.com/articles/how-to-install-and-configure-freetds-as-an-odbc-connector-to-microsoft-sql-server-on-centosrhel-for-lasso-9/

Centos 7.7 (1908) de Oracle client (11.2) kurulumu ve Php 5.4 ile baglanti saglanmasi.

Oracle client kurulumu:

1- Oncelikle https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html sayfasindan kurulacak versiyonun belirlenmesi.

11.2 versiyonunun basic, devel ve sqlplus paketlerini indirip centos’un /tmp klasorune kopyaliyoruz.

2- Putty ile Centos’a bağlanıp, tmp klasöründeki oracle client rpm dosyalarını kuruyoruz;

rpm -Uvh oracle-instantclient11.2-*

3- “export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib/” komutuyla link olusturuyoruz.

4- /usr/lib/oracle/11.2/client64/bin/sqlplus PROISV/PROISV@//192.168.1.XXX:1521/XX komutuyla oracle clientin çalışıp çalışmadığını test ediyoruz. Eğer aşağıdaki gibi bir ekran geldiyse oracle client kurulumu tamamdır;

oracle client test baglantisi.

Php oci8 kurulumu:

1- Şimdi sıra, php den oracle db ye bağlanabilmemiz için oci8 paketini kurmaya geldi. Bunun için https://pecl.php.net/package/oci8 adresinden oci8-1.4.7.tgz paketini indirip centos /tmp klasorune kopyalayin.

2- Aşağıdaki komutları uygulayarak paketi kuralım;

tar -xzf oci8-1.4.7.tgz
cd oci8-1.4.7
phpize (eğer burda hata verirse, “php-devel” paketi kurulması gerekir kurulum komutu : yum install -y php-devel)
./configure –with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib
make install

Not : Son satırda kurulumda hata alırsanız, muhtemelen sistemde “gcc” yüklü değildir, “yum install -y gcc” ile yükleyebilirsiniz.

3- /etc/php.ini dosyasi acilir ve extension kısmına “extension=oci8.so” satırı eklenir, kaydedilip kapatılır.

4- “systemctl restart httpd” ile apache restart edilir.

5- Extensionun kurulup kurulmadığı “phpinfo.php” çalıştırılarak kontrol edilir. phpinfo.php içeriği;

<?php
phpinfo();
?>

Çıkan listede “oci8” varsa, extension kurulmuştur.

Son aşama olarak php den oracle db ye bağlanma ve test edilmesi;

<?php

	ini_set('display_errors', 1);
	ini_set('display_startup_errors', 1);
	error_reporting(E_ALL);

	$db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.XXX)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XX)))";
	if($conn = OCILogon("PROISV", "PROISV", $db))
	{
		echo "Bağlandı.<br>";
	}
	else
	{
		$err = OCIError();
		echo "Bağlanamadı. " . $err[text];
	}
	
$stid = oci_parse($conn, 'SELECT * FROM XXX_XXX_RESERVATIONINFO WHERE ROWNUM <= 10');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {
	echo "$row[2] $row[3] $row[5] $row[6] $row[7] $row[8] $row[9] $row[10]<br>";
  
}
oci_free_statement($stid);
oci_close($conn);
?>

Kod çalıştırıldığında ekrana 10 adet kayıt geliyorsa, Centos 7 ye kurduğumuz oracle client 11.2 ve php 5.4 ile bağlantımız tamamlanmıştır :))

Not1 : Centosta Selinux aktif ise, oracle bağlantıda hata verebilir. Eğer hata verirse aşağıdaki komutla bağlantı sağlanabilir;

setsebool -P httpd_can_network_connect on

veya; “sestatus” ile selinux durumuna bakılır. Current mode enforcing ise, “setenforce 0” ile selinux disable edilebilir. Tekrar enable etmek : “setenforce 1”

Kaynak : https://developer.oracle.com/dsl/technote-php-instant.html

Phpmyadmin #1045 – Access denied for user ‘admin’@’localhost’ (using password: YES) sorunun çözümü

1 – Komut satırında; “service mysql stop”

2 – “sudo mysqld_safe --skip-grant-tables &"

3 – “mysql -u root"  >> mysql şifresi girilir.

4 – “use mysql;”

5 – “UPDATE mysql.user SET authentication_string=PASSWORD(‘yeni_sifre’) WHERE User=’root’;” veya diğer bir komut : ”

update user set password=PASSWORD("yeni_sifre") where User='root';"

6 – “flush privileges;”

7 – “quit;”

8 – “service mysql start” ve phpmyadmin root-yeni şifre ile kullanıma hazır…

Pfsense(FreeBSD) usb flash disk mount adımları

1 – Command line da komut : “camcontrol devlist” >> komut sonrasinda makinaya takili usb cihazlar listelenir. Bu kısımda usb genelde “da0” olarak gozukur.

2 –  “gpart list da0” ile usb nin detaylarına bakılabilir ancak mount etmek için bu adam önemli değildir.

3 – Rootta iken “mkdir usb_sandisk_8gb” ile bir klasor  olusturulur.

4 – “mount /dev/da0 /usb_sandisk_8gb” veya “mount_msdosfs /dev/da0s1 /usb_32gb_toshiba/” komutuyla usb mount edilir. Usb deki dosyalara bakmak istersek “ls /usb_sandisk_8gb” yazmamız yeterlidir.

 

Raspberry Pi ile sıcaklık derece ölçüm ve raporlama sistemi

Merhaba,

Bu kısımda Raspberry Pi ile yapılan derece ölçüm sistemi ve raporlarması anlatılmaktadır.

Derece ölçüm sisteminin adı “AutoTEMP” dir.

Ortam derecesini 5 dakikada bir ölçer, ölçülen derece üst ve alt limiti geçmişse size mail ve sms ile anında bildirir.

MAİL VE SMS ÖRNEĞİ:

 

Bu arada ölçüm dakikasını siz belirleyebiliyorsunuz. Yönetim panelinden 5 dakikada bir olan ölçüm periyodunu dakikada bir yada 10 dakikada bir gibi değiştirebilirsiniz.

Sistemde ölçüm sensörü olarak “DS18B20” sensörü kullanılmıştır. Sensörün uçları Raspberry Pi üzerindeki GPIO daki gerekli yerlere bağlanarak ölçümler gerçekleştirilmiştir. Ölçümü gerçekleştiren yazılım Python’da yazılmıştır.

Raspberry Pi yi açtığınız andan itibaren artık sistem dereceleri ölçmeye başlar. Dereceleri yönetim panelinden de görebilirsiniz

YÖNETİM PANELİ GİRİŞ EKRANI:

Yönetim paneline giriş yapmak için, internet tarayıcıya Raspberry Pi nin adresini yazmak yeterlidir. Ardından yukarıda gördüğünüz giriş ekranı çıkmaktadır. Kullanıcı adı “admin” , şifre ise sizin yönetim panelinden belirlediğiniz şifredir.

YÖNETİM PANELİ DURUM EKRANI:

Giriş yaptıktan sonra yönetim paneli durum ekranı gelir. Aşağıdaki gibidir ve son 3 saatin dereceleri gösterilir.

YÖNETİM PANELİ SENSÖR AYAR EKRANI:

Bu ekranda ise, Raspberry Pi ye bağlı olan ve dereceleri ölçen sensörün ayarları mevcuttur. Sensörün ismi, minimum ve maksimum derece limitleri, mail ve sms gönderimi yapılıp yapılmayacağı gibi ayarlar bu ekrandan yapılır.

YÖNETİM PANELİ RAPORLAR EKRANI:

İki tarih aralığında ölçülen derecelerin raporlandığı kısımdır.

 

YÖNETİM PANELİ GENEL AYARLAR EKRANI:

Derecelerin kaç dakikada bir ölçüleceği, mail ve sms gönderim ayarları, mail ve sms lerin kimlere gideceği, ne zaman ve hangi günlerde gideceği gibi ayarların yapıldığı ekrandır.