Posting

Machbase의 최신 소식을 지금 만나보세요

[MACHBASE 연동] 아파치 웹서버 PHP

마크베이스(Machbase) 와  아파치 웹서버의 PHP 연동하기

시작

이 문서에는 PHP에서 마크베이스를 사용할 수 있도록 설치를 해 보는 것이다.

현재 마크베이스를 PHP에서 접속하기 위해서는 ODBC를 통해서 접근이 가능하므로, 아파치 웹서버 및  PHP 그리고, ODBC 설치를 통해 웹 환경에서 데이터베이스에 접근하는 과정을 설명하도록 하겠다.

운영체제 환경은 마크베이스의 리눅스 도커 이미지를 활용해서 설치했으며, 다른 환경에서도 유사하게 동작할 것으로 생각된다.

일단 마크베이스는 아래와 같이 도커에 설치된 환경인 것을 확인할 수 있다.

machbase@4bbdce10db9b:~$ echo $MACHBASE_HOME
/home/machbase/machbase_home
machbase@4bbdce10db9b:~$ cd $MACHBASE_HOME
machbase@4bbdce10db9b:~/machbase_home$ ls
3rd-party collector dbs include lib meta trc webadmin
bin conf doc install machbase-std-3.5.0.826b8f2.official-LINUX-X86-64-release.tgz sample tutorials
machbase@4bbdce10db9b:~/machbase_home$ 

apache 및 php 설치 (우분투)

sudo apt-get install apache2 php5 unixodbc unixodbc-bin unixodb-dev php5-odbc
sudo apache2ctl start

PHP 동작 확인

관리자 권한으로 /var/www/html/index.php 파일을 아래와 같이 만들고, 접속해 보자.

<?
echo "test";
?>

시스템 전체를 위한 ODBC 초기환경 설정 (/etc/odbc.ini)

아파치에서 PHP를 통해 ODBC를 사용하기 위해서는 시스템 전체에 적용이 가능한 DSN을 등록해 주어야 한다.

vi 를 통해 이 파일을 아래와 같이 생성하자.

sudo vi /etc/odbc.ini

[machbase]
Driver=/home/machbase/machbase_home/lib/libmachbaseodbc_dll.so
DBNAME=mydb
SERVER=127.0.0.1
PORT_NO=5656
UID=SYS
PWD=MANAGER
NLS_USE=UTF8

그리고, isql machbase 로  테스트해서 동작하면 일단 성공이다.

machbase@4bbdce10db9b:~$ isql machbase
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
machbase@4bbdce10db9b:~$

첫번째 단계인 시스템 레벨에서의 ODBC 설정이 끝났다.

혹시 마크베이스를 위한 ODBC 설치를 더 알고 싶으면, 다음의 링크를 참조하라.

PHP에서 ODBC 사용하기

우선 모든 모듈이 제대로 로딩되도록 하기 위해 아파치 서버를 재구동시킨다.

sudo apache2ctl restart

그리고, 아래와 같은 파일을 만들고, 웹 브라우저에서 로딩한다.

/var/www/html/odbc.php

m$table에서 데이터를 select 한 후에 출력하는 루틴이다.

위와  같이 출력되면 모든 설정이 완벽하게 된 것이다.

에러가 발생한다면?

아파치 웹서버의 PHP에서  ODBC를 통해서 마크베이스를 사용하는 것은 꽤 복잡한 과정이다.

왜냐하면, 모든 솔루션들이 서로 연관되어 있기 때문에 작은 실수도 에러를 만들어 내기 때문이다.

만일 에러가 발생하면, 아래의 질문에 대해 생각해 보도록 한다.

  • 마크베이스 서버가 구동되어 있는가? 의외로 데이터베이스를 띄우지 않는 경우가 있다.
  • ODBC의 odbc.ini 의 내용이 정확한가?  포트번호나 DSN의 이름이 틀리는 경우가 있다. PORT_NO로 해야 할 것을 PORT로 하는 경우가 있다.
  • LD_LIBRARY_PATH에 모든 패스가 등록되어 있는가? 빠져 있으면, 라이브러리 로딩 에러가 발생한다.

이제까지 잘 설치되었다면, PHP 에서 마크베이스를 잘 활용할 수 있는 환경이 설정된 것이다.

Contact the Machbase team with your questions!
info@machbase.com

연관 포스트

C언어로 Binary data를 Machbase에 넣기

1.개요 Data를 다루다 보면 numeric, varchar 형 데이터뿐만 아니라 JPG, PNG, MP3와 같은 Binary data도 database에 저장해야 할 때가 존재한다. 그러나 일반 data들과는 달리 Binary

[MACHBASE 연동] Android studio에서 JDBC 연결하기

마크베이스 기술지원본부 이현민 1. 개요 수많은 데이터들이 많은 환경에서 생성되고 있는 오늘날, 우리 현대인들의 동반자인 스마트폰 또한 데이터생성의 주체로써 또는 전달자로서 알게 모르게 그 구실을