9
PHP 연동 InfiniFlux Co., Ltd.

InfiniFlux with_php

Embed Size (px)

Citation preview

Page 1: InfiniFlux with_php

PHP 연동

InfiniFlux Co., Ltd.

Page 2: InfiniFlux with_php

2

Overview

• PHP 는광범위하게사용되는오픈소스스크립트언어로서웹개발에적합

• 일반적으로 LAMP(Linux, Apache web server, MySQL, PHP) 조합으로사용

• MySQL 대신에 InfiniFlux 를이용하여웹개발이가능

• SQL을 InfiniFlux와 연동하려면 ODBC로작성할필요가있음

• ODBC(Open Database Connectivity)는프로그래밍언어와데이터저장소를연결하는데필요한소프트웨어드라이버시스템으로 2중인터페이스로설계

- 프로그래밍언어와 ODBC를연결하는드라이버(PHP-ODBC 라이브러리)- ODBC와데이터저장시스템을연결하는드라이버(InfiniFlux-ODBC 라이브러리)

• 리눅스에서 ODBC 드라이버는 iODBC와 unixODBC 두가지방법이있음

• InfiniFlux 는 unixODBC 를이용하여 PHP와연동

• InfiniFlux 를 RPM 버전으로설치하였다고가정하고설명

• LAMP 환경에서개발경험이있다는전제를하고설명

Page 3: InfiniFlux with_php

3

unixODBC 설정

unixODBC를 설치하고 ODBC Driver와 DSN을 설정

$ rpm -qa |grep unixODBC

• unixODBC 설치

1) 설치확인

$ sudo yum install unixODBC

2) 설치

또는 www.unixodbc.org 에서 다운로드 받아서 소스 컴파일하여 설치한다. 일반적으로 리눅스에 unixODBC가 설치되어 있으므로 별도로설치하지 않아도 된다.

$ odbcinst –junixODBC 2.2.14DRIVERS........................: /etc/odbcinst.iniSYSTEM DATA SOURCES: /etc/odbc.iniFILE DATA SOURCES…….: /etc/ODBCDataSourcesUSER DATA SOURCES…..: /root/.odbc.iniSQLULEN Size………….....: 8

• ODBC Drivers 설정

1) 설정 파일 위치 확인

$ odbcinst -q –d[InfiniFlux]

2) 설정 파일 편집

/etc/odbcinst.ini 파일에 다음 내용을 추가한다.

[InfiniFlux]Description = ODBC for InfiniFluxDriver = /opt/infiniflux/current/lib/libifluxodbc.soDriver64 = /opt/infiniflux/current/lib/libifluxodbc.soFileUsage = 1

3) 설치된 Drivers 확인

Page 4: InfiniFlux with_php

4

unixODBC를 설치하고 ODBC Driver와 DSN을 설정

$ odbcinst –junixODBC 2.2.14DRIVERS........................: /etc/odbcinst.iniSYSTEM DATA SOURCES: /etc/odbc.iniFILE DATA SOURCES…….: /etc/ODBCDataSourcesUSER DATA SOURCES…..: /root/.odbc.iniSQLULEN Size………….....: 8SQLLEN Size…………….....: 8

• ODBC DSN 설정

1) 설정 파일 위치 확인

[iflux]Driver = InfiniFluxDescription = iflux Driver DSNSERVER = 127.0.0.1PORT = 5656USER = SYSPassword = MANAGERDatabase = mydb

2) 설정 파일 편집

3) 설치된 DSN 확인

unixODBC 설정(cont’d)

$ odbcinst -q –s[iflux]

시스템 전체적으로 적용하려면 /etc/odbc.ini를 생성/편집하고, 하나의 리눅스 사용자 계정에 적용하려면 사용자 홈 디렉토리에.odbc.ini를 생성/편집하면 된다.

여기서는 /etc/odbc.ini 파일을 편집하도록 한다.

Page 5: InfiniFlux with_php

5

unixODBC 설정(cont’d)

unixODBC를 설치하고 ODBC Driver와 DSN을 설정

• 접속 테스트

다음명령어를이용하여접속확인을한다. “iflux”는 odbc.ini 파일에작성한 DSN 명이다.

$ isql iflux

• SQL 테스트

isql 로접속하여기본적인 SQL 을수행해본다.

SQL> selet * from aaa;

Page 6: InfiniFlux with_php

6

PHP-ODBC 설정

PHP-ODBC 설치

$ sudo yum list installed | grep php-odbc

• PHP-ODBC 설치

1) php-odbc가 설치되어 있는지 확인

$ sudo yum install php-odbc

2) 설치되어 있지 않으면 설치

$ cd /var/www/html$ vi phpinfo.php

3) 설치 확인

<?phpphpinfo();

?>

정상적으로설치되면웹브라우저에서 phpinfo() 로확인할때 ODBC 항목이표시된다.

Page 7: InfiniFlux with_php

7

httpd.conf 설정

Apache 웹 서버의 httpd.conf 파일을 설정

$ cd /etc/httpd/conf/$ vi httpd.conf

SetEnv LD_LIBRARY_PATH /usr/lib:/opt/infiniflux/current/lib

$ apachectl restart

• httpd.conf 설정

httpd.conf 파일에 LD_LIBRARY_PATH 를 설정하고 웹 서버를 restart 한다.

$ export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/opt/infiniflux/current/lib

• LD_LIBRARY_PATH 설정(optional)

계속오류가발생하는경우리눅스 ROOT 사용자환경에서 LD_LIBRARY_PATH 를설정해주면해결되는경우도있다.

Page 8: InfiniFlux with_php

8

확인 및 테스트

테스트 PHP를작성하여웹브라우저에서확인

<?php

header("Content-Type: text/html; charset=utf-8");

$conn = odbc_connect('iflux', '', '');

if( $conn ){

$query = odbc_exec( $conn, "select id, name from aaa");while( odbc_fetch_row($query) ){

$id = odbc_result($query, 1);$name = odbc_result($query, 2);

echo "id=$id, name=$name<br>\n";}

odbc_free_result( $conn );odbc_close( $conn );

}else{

echo "connectioin failed...";}?>

* 오류가발생하면 Apache 웹서버로그(/var/log/httpd/error_log) 를확인해본다.

Page 9: InfiniFlux with_php

[email protected]

InfiniFluxThe World's Fastest Time Series DBMSfor IoT and Big Data