Apache PHP Cubrid 연동 (phpcubadmin 까지설치 ) 2010 년 4 월 13 일 http://www.commit.co.kr 정현호 admin@commit.co.kr
설치환경및버전 OS Apache2.2 php 5.2.12 Fedora12 httpd-2.2.13-4.fc12.i686 소스설치 cubrid CUBRID 2008 R2.1 fedora12 에서 php 버전이포스팅하는시점에서 5.3 이 RPM 버전으로설치가되고 그에따라 zend optimizer 가 PHP5.3 버전용이없기에 apache 는 RPM 으로 php 는소스설치되어있는 일반적인연동상태에서 cubrid 가 mysql 대신연동하는부분을기술되어있습니다 문서에대한문제점이나질문은블로그나 http://fedoralinux.or.kr 에글올려주세요 오라클이나 mysql 처럼설치할그룹과유저를생성합니다 # useradd cubrid 페도라나 centos 는유저추가시유저명으로그룹이생성되고지정되지만 그렇지않은 OS 인경우그룹추가후 useradd -g 옵션으로지정해주시면됩니다 계정비밀번호지정 # passwd cubrid cubrid 계정으로변경후큐브리드설치파일을다운받습니다 # su - cubrid # wget http://dev.naver.com/frs/download.php/702/cubrid-8.2.1.0215-linux.i386.sh 실행권한을부여 # chmod u+x CUBRID-8.2.1.0215-linux.i386.sh 실행 #./CUBRID-8.2.1.0215-linux.i386.sh 실행하면 Copyright (C) 2008 Search Solution Corporation. All rights reserved by Search Solution. CUBRID is registered trademark of Search Solution Corporation. This Software is released under GNU GPL v2 or BSD according to its components. For more information, please refer to the CUBRID home page(http://www.cubrid.com).
중략 The GNU General Public License (GPL) Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. --More-- GPL 등라이센스에대한설명이나옵니다 라이센스동의물음에 yes 로응답합니다 Do you agree to the above license terms? (yes or no) : yes 큐브리드설치디렉토리를물어봅니다 Do you want to install this software(cubrid) to the default(/home/cubrid/cubrid) directory? (yes or no) [Default: yes] : 기본값은인스톨실행유저홈디렉토리로지정됩니다필자는기본디렉토리에설치하겠습니다 여기도 yes In case a different version of the CUBRID product is being used in other machines, please note that the CUBRID 2008 R2.1 servers are only compatible with the CUBRID 2008 R2.1 clients and vice versa. Do you want to continue? (yes or no) [Default: yes] : yes 를해주고좀기다리면아래와같은메시지를띄우면끝나는걸볼수있습니다 CUBRID has been successfully installed. demodb has been successfully created. If you want to use CUBRID, run the following commands %. /home/cubrid/.cubrid.sh % cubrid service start 밑에 2 줄대로합니다 #. /home/cubrid/.cubrid.sh # cubrid service start
프로세스가잘떠있는지확인해보면 [cubrid@fedora12]$ ps -ef grep cub_ cubrid 2872 1 0 12:31? 00:00:00 cub_master cubrid 2875 1 0 12:31? 00:00:00 cub_broker cubrid 2876 1 0 12:31? 00:00:00 query_editor_cub_cas_1 cubrid 2877 1 0 12:31? 00:00:00 query_editor_cub_cas_2 cubrid 2878 1 0 12:31? 00:00:00 query_editor_cub_cas_3 cubrid 2879 1 0 12:31? 00:00:00 query_editor_cub_cas_4 cubrid 2880 1 0 12:31? 00:00:00 query_editor_cub_cas_5 cubrid 2885 1 0 12:31? 00:00:00 cub_broker cubrid 2886 1 0 12:31? 00:00:00 broker1_cub_cas_1 cubrid 2887 1 0 12:31? 00:00:00 broker1_cub_cas_2 cubrid 2888 1 0 12:31? 00:00:00 broker1_cub_cas_3 cubrid 2889 1 0 12:31? 00:00:00 broker1_cub_cas_4 cubrid 2890 1 0 12:31? 00:00:00 broker1_cub_cas_5 cubrid 2898 1 0 12:31? 00:00:00 cub_auto start cubrid 2901 1 0 12:31? 00:00:00 cub_js start cubrid 2912 2677 0 12:33 pts/0 00:00:00 grep cub_ 연동을위해서모듈을 php cubrid 모듈을다운받습니다중요한건모듈이 64bit로컴파일이되어있기때문에시스템이 64비트 / 큐브리도 64비트로설치했다면올라와있는것그대로사용하면되고 32비트라면소스를받아서모듈을컴파일해야합니다 (32비트인데이런.. ㅠ _ ㅠ ) 64 비트 ) wget http://dev.naver.com/frs/download.php/987/cubrid.so wget http://dev.naver.com/frs/download.php/988/cubrid_err.msg root 유저로변경한후파일을옴깁니다그전에 cubrid로모듈을다운받았다면소유주와그룹변경합니다 # chown root:root cubrid.so # chown root:root cubrid_err.msg php.ini 에기록된 extension_dir 경로에 2개의파일을옴겨놓고 php.ini파일에아래 2줄추가합니다 extension=cubrid.so cubrid.err_path="/usr/lib/php/modules" 그리고 php.ini 의내용중 session.auto_start 의값이 0 으로세팅되어있으면 1 로변경합니다
32비트 ) 모듈소스를받고압축을풉니다 # wget http://dev.naver.com/frs/download.php/690/cubrid-php-8.2.1.0215.src.tar.gz # tar zxvf CUBRID-PHP-8.2.1.0215.src.tar.gz src 디렉토리에보면 config.m4 파일이있습니다. 이파일을열어서 PHP_ADD_LIBRARY_WITH_PATH 매크로에서 "$CUBRID/lib64" 부분을 "$CUBRID/lib" 으로변경 src 디렉토리안에서 phpize 실행 # phpize phpize 가없다면검색을통해설치혹은 path 가안잡혀있을수있으니확인 아래작업실시 #./configure # make 정상적으로빌드가되었다면 modules 디렉토리안에 cubrid.so 파일이생성이되었기에 php.ini 에기록된 extension_dir 경로에옴겨놓습니다 src 디렉토리에 cubrid_err.msg 도옴겨놓습니다 php.ini 에아래 2 줄을추가합니다 extension=cubrid.so cubrid.err_path="/usr/lib/php/modules" 그리고 php.ini 의내용중 session.auto_start 의값이 0 으로세팅되어있으면 1 로변경합니다 아파치를재시작후에웹서버홈디렉토리에 phpinfo.php 파일을만들고 <?php phpinfo();?> 내용을넣고저장한후접속해봅니다출력되는내용중 php 모듈연결을확인할수있습니다 출력되는 Version 은설치되어있는 CUBRID 2008 의버전이아닌 CUBRID PHP 모듈의버전입니다. 간단하게데이터베이스와유저를생성한후에 XE 를설치해보겠습니다
오라클의 sqlplus 와비슷한 csql 를지원하지만윈도우상에서큐브리드메니저를 이용하여하겠습니다 X 윈도우를띄운후터미널에서 # cd /home/cubrid/cubrid/cubridmanager 로이동 큐브리드메니저실행 #./cubridmanager 참고로 JRE 나 JDK 1.6 이상설치되어있어야합니다 윈도우에서클라이언트로접속해서작업하고싶다면컴퓨터에 CUBRID를 CLIENT_ONLY로설치합니다. CLIENT_ONLY 로설치하는방법은 CUBRID 데이터베이스설치를참고하시기바랍니다. 리눅스에서 8001,8002,30000,33000 포트를방화벽에서풀어줘야합니다 큐브리드메니저를실행하고접속을하면아래와같이나옵니다 매니저서버기본관리자아이디는 admin 비밀번호는 admin 입니다 기본비밀번호 admin 를입력하면비밀번호변경화면이뜹니다
새비밀번호지정합니다 새비밀번호지정한후아래스샷과같이아이콘을이용하여데이터베이스를생성합니다 저는데이터베이스이름음 xe 로하고볼륨크기를 100M 로하겠습니다
다음을누릅니다 다음을누릅니다
해당데이터베이스 DBA( 관리자 ) 비밀번호를지정 완료
db 생성중 db 생성완료 생성한 xe 데이터베이스를더블클릭하면관리자로그인창이나옵니다 생성시입력한비밀번호를입력해서로그인합니다
로그인후사용자에서마우스우클릭후 " 사용자추가 " 를누릅니다 아이디와비밀번호를지정하고확인 저는 xe 라고생성하였고정상적으로생성됬음을확인할수있습니다
큐브리드서버구동시 xe 데이터베이스가구동될수있도록설정합니다 # vi /home/cubrid/cubrid/conf/cubrid.conf 열어보면아래와같이 29 줄 -38 줄사이에볼수있는데 37 줄에 #server=foo.bar 밑에 server=xe <- 이런식으로주석없이데이터베이스명을기술합니다 준비가됬으니 xe 를설치를해보겠습니다포스팅시점에서 1.4.0.10 버전이최신버전임으로 1.4.0.10 버전으로설치하겠습니다 XE 세부설치방법은워낙많은정보가나오니패스하겠습니다 db 선택에서 cubrid 를선택
db 아이디 db 비밀번호 db 데이터베이스을기술합니다나머지작성후확인 설치가완료후에정상적으로 xe 제어판으로접속되네요
큐브리드메니저로보니테이블도생성된걸확인할수있었습니다 mysql 에웹관리클라이언트인 phpmyadmin 과유사한 큐브리드용 phpcubadmin 을설치하겠습니다 wget http://dev.naver.com/projects/cubrid/forum/3103/1198/phpcub8admin-1.3.zip php 설치시 --enable-sockets \ 옵션이안들어가게되면안됩니다 위옵션없이 php 컴파일되어있다면재컴파일이필요할듯합니다 다운을받고압축을풉니다저는 /var/www/phpcubadmin 으로디렉토리를옴겨놨습니다그리고아파치에서 alias 를걸어놓았습니다 Alias /phpcubadmin "/var/www/phpcubadmin" <Directory "/var/www/phpcubadmin"> AllowOverride None Options FollowSymLinks MultiViews DirectoryIndex index.php order deny,allow Allow from all </Directory>
디렉토리내에 tokens 디렉토리는아파치유저가쓰기권한이있어야합니다 간단하게 chmod 777 tokens 으로해줍니다 설정해준 alias 로접속합니다 저는 phpcubadmin 으로해줘서 http:// 주소 /phpcubadmin 으로접속했습니다 접속후 "CUBRID" 를선택하면로그인창이나옵니다 큐브리드메니저에서아이디 admin 과지정해준비밀번호를넣습니다 로그인후화면입니다 XE 설치하려고만든 xe 데이터베이스도보이네요 큐브리드매니저보다는조금부족할수있지만 kldp 프로젝트로등록되어있어계속개발중이니 조만간 phpmyadmin 만큼발전될거라생각됩니다 mysql 만큼기대되는국산오픈소스 DB 인큐브리드에게 많은기대와응원해주세요