Windows 에서 Apache, PHP 를 이용하여 CUBRID 사용하기
소개: Windows
환경에서 Apache 웹서버와 PHP 를
이용하여 CUBRID 를 사용하기 위하여 PHP CUBRID
module 를 설치하는 방법 및 간단한 CUBRID 연동방법을 소개한다. 연동에 대한 상세한 방법은 매뉴얼 상의 PHP API 부분을
참고하기 바란다
2008-10-20 기술컨설팅팀 남재우,
CUBRID
적용 대상: WindowsXP/WindowsVista32, CUBRID2008, Apache2.2.10, PHP5.2
Windows 환경에서Apache web server 를 설치하는 방법을 소개한다. Apache web server 는 Apache download 로부터 내려받을 수 있다. 보통 Apache HTTP Server 2.2.10 is the best available version 아래 Win32 Binary 를 내려받은 후, 내려받은 파일(예, apache_2.2.10-win32-x86-no_s.msi) 을 double-click 하여 실행시키면 설치가 시작된다. License Agreement 에 동의한 후, 다음으로 넘어간다.
Network domain과
Server Name 에 localhost 라고 입력하고
Administrator's Email address 은 관리자(혹은 본인)의 E-mail을 입력한다.
그런 다음 설치는 일반설치(Typical) 를 선택한다.
설치디렉토리를 선택하는데 기본 설정을 그대로 사용한다. 그런다음
“Install” 을 click 하여 설치를
진행한다.
설치가
완료되면 Apache web server가 구동된 후 시스템 트레이에 ApacheMonitor 아이콘이 초록색 화살표로 생긴다.
웹 브라우져를 구동시킨 후 주소창에 http://localhost 를 입력한다. 아래와 같이 It works! 가 표시되면 정상적으로 설치된 것이다.
PHP 를 설치하기 위해서는 우선 Apache web server 를 종료시킨다. 종료시키기 위해서는 tray 의 Apache monitor icon 을 마우스 오른쪽클릭 후 “Open Apache Monitor” 를 선택하여 보여지는 창에서 “Stop” 을 선택한다.
PHP 는 PHP download 를 통하여 내려받을 수 있다. 보통 가장 최신 버전이 보이고, Windows Binaries 아래의 것(예, PHP 5.2.6 zip package)을 내려받으면 된다. 내려받은 Zip 파일을 C:PHP 아래에 풀어준다. 압축을 푼 후 C:PHPphp.ini-dist 파일을 C:windows 아래에 php.ini로 복사한다. 그런다음 C:PHPphp5ts.dll 파일을 C:windowssystem32 아래에 복사한다.
마지막으로 Apache web server 를 설치한 폴더 (예, C:Program FilesApache Software FoundationApache2.2) 아래 conf 폴더에 있는 httpd.conf 를 편집기로 연후 파일의 맨 마지막에 아래의 내용을 추가한 후 저장한다.
LoadModule php5_module C:/php/php5apache2_2.dll
AddType application/x-httpd-php .php
종료시켰던 Apache web server 를 재구동시킨다. 구동시키기 위해서는 tray 의 Apache monitor icon 을 마우스 오른쪽클릭 후 “Open Apache Monitor” 를 선택하여 보여지는 창에서 “Start” 을 선택한다.
설치후 PHP 설치 및 연동 여부를 확인하기 위하여 아파치를 설치한 폴더(C:Program FilesApache Software FoundationApache2.2) 아래 htdocs 폴더에 phpinfo.php 를 작성하여 수행하여 본다. phpinfo.php의 내용은 아래와 같다.
<? phpinfo(); ?>
웹 브라우져를 구동시킨 후 주소창에 http://localhost/phpinfo.php 를 입력한다. 아래와 같이 PHP Version… 이 표시되면 정상적으로 설치된 것이다.
CUBRID PHP module 은 CUBRID download 아래 “PHP 모듈 다운로드”에서 windows 용(예, cubrid_php5.2.zip)을 내려받는다. 내려받은 후 PHP 를 설치한 디렉토리(예, C:PHP) 아래 CUBRID 라는 폴더를 만든후, 내려받은 파일을 생성한 CUBRID 폴더 아래에 풀어준다.
C:windowsphp.ini 를 편집하여 CUBRID PHP module 에 대한 정보를 입력 후 저장한다.
extension_dir=C:PHPCUBRID
extension= cubrid_php5.2_zts.dll
[CUBRID]
cubrid.err_path=C:PHPCUBRID
저장 후 Apache web server 를 재구동하여, phpinfo.php 를 수행하여 아래와 같이 CUBRID 항목이 보이는지를 확인한다.
만약 보이지 않는다면 Apache web server의 error log(예, C:Program FilesApache Software FoundationApache2.2logserror_log) 의 내용을 참고하여 원인을 해결한다.
CUBRID 와 연동을 하기위해서는 CUBRID service 가 구동되어있어야 하며, Windows 의 경우 자동으로 구동된다. 다만 데이터베이스는 구동되지 않으므로 CUBRID Manager Client 를 이용하여 구동시켜주면 되며, 사용법은 다음과 같다. 참고로 CUBRID Manager Client 는 JAVA 로 개발되어 수행시키기 위해서는 JAVA RunTime 환경이 필요하다. JAVA RunTime 은 JAVA download 에서 내려받을 수 있으며, Java SE Runtime Environment (JRE) 을 내려받으면 된다.
· CUBRID Manager Client 는 windows system tray 의 CUBRID icon 을 우클릭하여 보이는 메뉴에서 선택하여 수행시킨다.
·
보이는 localhost 에
로그인 한다. 처음 설치시라면 그냥 “연결”을 클릭하면 된다.
·
화면 오른쪽에 데이터베이스를 선택하면,
데이터베이스에 대한 로그인 화면이 보이고, 초기 설치시에는 데이터베이스 사용자 암호가
설정되어 있지 않으므로 여기서는 그냥 “확인”을 선택하면
된다.
·
데이터베이스에 로그인후,
데이터베이스를 우클릭하여 보이는 메뉴 중 “데이터베이스 서버 가동”을 선택하여, 데이터베이스를 구동시킨다.
다음은 실제 PHP 와 CUBRID를 연동하는 것을 간단하게 구성한 예제다. 가장 기본적인 기능과 특별히 주의해야 할 내용만을 다룬다.
아래 소스들을 DOCUMENT_ROOT(예, C:Program FilesApache Software FoundationApache2.2htdocs) 에 작성한다.
예제에서 사용된 IP address 는 localhost 를 그대로 사용하였다. 혹은 실제 사용하는 IP address 를 적어주면 된다. 웹 브라우져에서 http://localhost/select.php 와 같은 형식으로 테스트하면 된다.
<html><head><meta http-equiv='content-type' content='text/html; charset=euc-kr'></head>
<body>
<center>
<table border=2>
<?
// .CUBRID 에 접속하기 위한 서버 정보를 설정한다. IP address 는 CUBRID(CUBRID BROKER) 서버가 설치되어있는 곳의 IP address(여기서는 localhost) 이며, port 는 CUBRID(CUBRID BROKER) 서버로 접속하기 위한 port 번호이다. port 번호는 설치시의 default 값이며 정확한 의미등을 알기위해서는 CUBRID 관리자안내서 를 참고하기 바람.
$host_ip = "localhost";
$host_port = 33000;
$db_name = "demodb";
// CUBRID 서버에 접속한다
$cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);
if (!$cubrid_con) {
echo "DB 접속 오류: " . cubrid_error_msg();
exit;
}
?>
<?
$sql = "select code, name, players from event";
// SQL 문장에 대하여 CUBRID 서버로 결과를 요청한다.
$result = cubrid_execute($cubrid_con, $sql);
if ($result) {
// SQL 처리 결과로 만들어진 결과셋에 대하여 column 이름들을 얻어온다.
$columns = cubrid_column_names($result);
// SQL 처리 결과로 만들어진 결과셋에 대하여 column 개수를 얻어온다.
$num_fields = cubrid_num_cols($result);
// 화면에 결과셋의 각 column 이름을 보여준다.
echo("<tr>");
while (list($key, $colname) = each($columns)) {
echo("<td align=center>$colname</td>");
}
echo("</tr>");
// 결과셋에서 결과 row 를 가져온다.
while ($row = cubrid_fetch($result)) {
echo("<tr>");
for ($i = 0; $i < $num_fields; $i++) {
echo("<td align=center>");
echo($row[$i]);
echo("</td>");
}
echo("</tr>");
}
}
// CUBRID 는 3-tier 구조로 동작이 되며, transaction 처리를 위하여 select 를 하더라도 transaction 의 일부로 처리를 한다. 따라서 원활한 동작과 성능을 위하여 select 처리를 하였더라도 commit(또는 rollback) 처리를 하여 transaction 을 정리해 주어야 만 한다. 자세한 사항은 CUBRID admin guide 를 참고하기 바람
cubrid_commit($cubrid_con);
cubrid_disconnect($cubrid_con);
?>
</body></html>
<html><head><meta http-equiv='content-type' content='text/html; charset=euc-kr'></head>
<body>
<center>
<table border=2>
<?
// .CUBRID 에 접속하기 위한 서버 정보를 설정한다. IP address 는 CUBRID(CUBRID BROKER) 서버가 설치되어있는 곳의 IP address(여기서는 localhost) 이며, port 는 CUBRID(CUBRID CAS) 서버로 접속하기 위한 port 번호이다. port 번호는 설치시의 default 값이며 정확한 의미등을 알기위해서는 CUBIRD admin guide 를 참고하기 바람.
$host_ip = "localhost";
$host_port = 33000;
$db_name = "demodb";
// CUBRID 서버에 접속한다.
$cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);
if (!$cubrid_con) {
echo "DB 접속 오류";
exit;
}
?>
<?
$sql = "insert into event(code, sports, name, gender, players) values(10000, '태권도','무한체급', 'M', 2)";
// SQL 문장에 대하여 CUBRID 서버로 처리를 요청한다.
$result = @cubrid_execute($cubrid_con, $sql);
if ($result == true) {
// 정상적으로 처리되었으므로 commit 처리한다.
cubrid_commit($cubrid_con);
echo("성공적으로 입력되었읍니다");
} else {
// 에러가 발생하였으므로 에러메세지를 보여준후, rollback 처리한다.
echo(cubrid_error_msg());
cubrid_rollback($cubrid_con);
}
cubrid_disconnect($cubrid_con);
?>
</body></html>