APM_oracle연동하기
2010.05.11 11:08
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
다음버젼을 설치한 예시다.
OS : AIX 5.2 64bit
Apache-1.3.33
Php-4.3.8
Mysql-4.0.24
Oracle-9.2.0.1
- 동적 모듈로 설치한다.
- 모든 컴파일은 gnu.gcc 로 하였다.
Step 0 : Install 준비
Gnu package 들을 설치한다.
- libtool, gcc, make, zlib 등등 컴파일 하면서 필요하면 그때 그때 설치해서 정확한 버젼 및 package명은 생각나지 않는다.
- 필요하다고 생각되는 gnu package는 모두 설치하기 바라며 aix 호환되는 최신 버전을 권장한다.
- 경험상 컴파일 문제의 대부분은 make와 gcc 최신 버전으로 해결된다. 참고.
- AIX 5.2 ML 최신으로 업데이트 -> 오라클 설치시 error를 방지할수 있다.
Step 1 : Install MySQL
www.mysql.org 에서 바이너리 다운받아서 그냥 압축 풀었다.
- 이유 : 컴파일 안되서 (귀차니즘) ㅜㅜ;
- 만일 소스컴파일이면 source compile 시 옵션은 다음과같다.
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euc_kr
- mysql test
# /usr/local/mysql/bin/safe_mysqld&
# /usr/local/mysql/bin/mysql –u root mysql
> exit
# kill mysql_pid
Step 2 : Install Apache
- apache 2.0 대 버전을 설치하려고 하였으나 db4/d b.h등등 configure하는데 너무 많은 시간이 걸려서 apache는 1.x 대 버전을 사용하기로 하였다. 차후 2.x대 버전으로 해봐야 한다.
#./configure --prefix=/usr/local/apache --enable-module=so
#make
#make install
-인스톨시 별 무리 없이 진행됬다.
- apachectl test
#/usr/local/apache/bin/apachectl start
#/usr/local/apache/bin/apachectl stop
Step 3 : Install Oracle
- oracle 유저 및 root유저도 환경설정을 같게 해주었다. Apache 등의 설정에 적용되도록하기 위하여
.profile
web_server:/>cat .profile
PS1=`hostname`:'$PWD>'
TERM=vt100
export PS1 TERM
LANG=C
set -o vi
PATH=/usr/local/bin:/usr/local/mysql/bin:/usr/local/lib:$PATH
export PATH
CC=gcc
#The following line is added by License Use Management installation
export PATH=$PATH:/usr/opt/ifor/ls/os/aix/bin
umask 022
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export ORACLE_SID=ora9
export PATH=$PATH:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/local/bin:$ORACLE_HOME/bin:/usr/bin/X11:/sbin:.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib:usr/local/lib
export LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$LIBPATH
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jre/1.1.8/lib:/usr/jdk_base:/usr/jdk_base/lib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib
- oracle install 도중 ins_sqlplus.mk에서 에러를 만나서 진행이 안되었다.
해결 : otn site에서 aix base 말고 aix5l 용 서버를 다운받아서 install에 성공하였다.
- oracle client만을 인스톨 했을경우 php 컴파일시 error 발생
해결 : 클라이언트로 사용하더라도 서버all설치하는게 바람직하며, 실제 oracle서버가 install된 곳에서 rdbms/ 파일들을 copy해 와도 된다.
- java 관련 display error가 날경우 다음을 설정한다
#xhost +
#export DISPLAY=hostname:0.0
- oracle Test
$ sqlplus sco/tig@ora92
- tnsmames.ora 는 설정되어 있는것으로 한다.설정에 대한 상세사항은 다른 문서를 참조하기 바란다.
Step 4 : Install PHP
# ./configure \
--prefix=/usr/local/php \
--with-apxs=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mod-charset \
--with-language=korean \
--with-charset=euc_kr \
--disable-debug \
--enable-track-vars=yes \
--with-oci8=/usr/local/oracle --with-oracle=/usr/local/oracle
#make
#make install
#cp php.ini-dist /usr/local/lib/php.ini
#cp php.ini-dist /usr/local/apache/bin/php.ini
- 컴파일 도중 –-with-zlib-dir 관련 error 를 만난다면 –-with-mysql을 수정해도 연동에는 이상이 없다.
# ./configure \
--prefix=/usr/local/php \
--with-apxs=/usr/local/apache/bin/apxs \
--with-mysql \
--with-mod-charset \
--with-language=korean \
--with-charset=euc_kr \
--disable-debug \
--enable-track-vars=yes \
--with-oci8=/usr/local/oracle --with-oracle=/usr/local/oracle
- 컴파일중 oci8 관련 error를 만난다면 다음과 같이 수정한다.
다운받은 php소스 파일을 적당한 위치에 풀고 'configure'파일을 열어봅니다.
파일 내용을 보면 'OCI8_DIR/lib' , 'ORACLE_DIR/lib' 이런 두 개의 구문이 자주나오는데
이부분을 모두 'OCI8_DIR/lib32', 'ORACLE_DIR/lib32' 로 바꿔 줍니다.
:1,$s/OCI8_DIR\/lib/OCI8_DIR\/lib32/g
:1,$s/ORACLE_DIR\/lib/ORACLE_DIR\/lib32/g
Step 5 : Install 마무리하기
1. Apache
#vi /usr/local/apache/conf/httpd.conf
// php파일을 웹서버에서 인식하기 위해 아래두줄 추가
AddType application/x-httpd-php .php .phtml .php3 // php파일로 해석할 확장명설정
AddType application/x-httpd-php-source .phps // php 소스로 해석할 확장명설정
// 처음페이지로 인식할 파일명설정
DireactoryIndex index.html index.php
- oracle 연동은 되었으나 php함수 OCILogon()에서 error발생하는경우 apachectl 내부에 oracle유저와 같은 환경변수를 셋팅한다.
2. Test
-oracle은 다른 server 에서 시작되어있고
-mysql 시작하고
-apache 시작하고
-htdocs및에 test.php, test2.php, test3.php 를 만들고 웹에서 잘 열리는지 보면 된다.
Test.php
<?
phpinfo();
?>
test2.php
<?
echo "mysql link test code <p>";
$link = mysql_connect("localhost", "root", "")
or die("Could not connect");
print "Connected successfully";
?>
test3.php
<?
echo "Oracle link test code <p>";
$conn=OCILogon("tcsw","tcsw1234","oraits")or die("연결실패");
echo gettype($conn).":".get_resource_type($conn)."<p>";
echo OCIServerVersion($conn);
?>
끝 – 수고하셨습니다.
본문서는 이번 인스톨작업 하면서 일어낫던 문제들만을 다루었으며, 버젼 및 OS환경에 따라 새로운 문제가 나타날수 있다.
문서중 원저작자의 글을 그대로 카피한 부분이있으나 인터넷에서 바로 보고 창을 닫아버려서 표시 하지 못하였다. 죄송.
참고 문서는 일일이 열거 하기 난해하여 웹싸이트로 대신한다.
- www.phpschool
- database.sarang.net
- eibm.co.kr
- ibm.com/kr
- mysql, apache, php, oracle.com
- aixpdslib.seas.ucla.edu
** 기타 불법인용이나 문의 : pyj@eibm.co.kr
OS : AIX 5.2 64bit
Apache-1.3.33
Php-4.3.8
Mysql-4.0.24
Oracle-9.2.0.1
- 동적 모듈로 설치한다.
- 모든 컴파일은 gnu.gcc 로 하였다.
Step 0 : Install 준비
Gnu package 들을 설치한다.
- libtool, gcc, make, zlib 등등 컴파일 하면서 필요하면 그때 그때 설치해서 정확한 버젼 및 package명은 생각나지 않는다.
- 필요하다고 생각되는 gnu package는 모두 설치하기 바라며 aix 호환되는 최신 버전을 권장한다.
- 경험상 컴파일 문제의 대부분은 make와 gcc 최신 버전으로 해결된다. 참고.
- AIX 5.2 ML 최신으로 업데이트 -> 오라클 설치시 error를 방지할수 있다.
Step 1 : Install MySQL
www.mysql.org 에서 바이너리 다운받아서 그냥 압축 풀었다.
- 이유 : 컴파일 안되서 (귀차니즘) ㅜㅜ;
- 만일 소스컴파일이면 source compile 시 옵션은 다음과같다.
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euc_kr
- mysql test
# /usr/local/mysql/bin/safe_mysqld&
# /usr/local/mysql/bin/mysql –u root mysql
> exit
# kill mysql_pid
Step 2 : Install Apache
- apache 2.0 대 버전을 설치하려고 하였으나 db4/d b.h등등 configure하는데 너무 많은 시간이 걸려서 apache는 1.x 대 버전을 사용하기로 하였다. 차후 2.x대 버전으로 해봐야 한다.
#./configure --prefix=/usr/local/apache --enable-module=so
#make
#make install
-인스톨시 별 무리 없이 진행됬다.
- apachectl test
#/usr/local/apache/bin/apachectl start
#/usr/local/apache/bin/apachectl stop
Step 3 : Install Oracle
- oracle 유저 및 root유저도 환경설정을 같게 해주었다. Apache 등의 설정에 적용되도록하기 위하여
.profile
web_server:/>cat .profile
PS1=`hostname`:'$PWD>'
TERM=vt100
export PS1 TERM
LANG=C
set -o vi
PATH=/usr/local/bin:/usr/local/mysql/bin:/usr/local/lib:$PATH
export PATH
CC=gcc
#The following line is added by License Use Management installation
export PATH=$PATH:/usr/opt/ifor/ls/os/aix/bin
umask 022
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export ORACLE_SID=ora9
export PATH=$PATH:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/local/bin:$ORACLE_HOME/bin:/usr/bin/X11:/sbin:.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib:/usr/lib:usr/local/lib
export LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$LIBPATH
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jre/1.1.8/lib:/usr/jdk_base:/usr/jdk_base/lib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/jlib
- oracle install 도중 ins_sqlplus.mk에서 에러를 만나서 진행이 안되었다.
해결 : otn site에서 aix base 말고 aix5l 용 서버를 다운받아서 install에 성공하였다.
- oracle client만을 인스톨 했을경우 php 컴파일시 error 발생
해결 : 클라이언트로 사용하더라도 서버all설치하는게 바람직하며, 실제 oracle서버가 install된 곳에서 rdbms/ 파일들을 copy해 와도 된다.
- java 관련 display error가 날경우 다음을 설정한다
#xhost +
#export DISPLAY=hostname:0.0
- oracle Test
$ sqlplus sco/tig@ora92
- tnsmames.ora 는 설정되어 있는것으로 한다.설정에 대한 상세사항은 다른 문서를 참조하기 바란다.
Step 4 : Install PHP
# ./configure \
--prefix=/usr/local/php \
--with-apxs=/usr/local/apache/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-mod-charset \
--with-language=korean \
--with-charset=euc_kr \
--disable-debug \
--enable-track-vars=yes \
--with-oci8=/usr/local/oracle --with-oracle=/usr/local/oracle
#make
#make install
#cp php.ini-dist /usr/local/lib/php.ini
#cp php.ini-dist /usr/local/apache/bin/php.ini
- 컴파일 도중 –-with-zlib-dir 관련 error 를 만난다면 –-with-mysql을 수정해도 연동에는 이상이 없다.
# ./configure \
--prefix=/usr/local/php \
--with-apxs=/usr/local/apache/bin/apxs \
--with-mysql \
--with-mod-charset \
--with-language=korean \
--with-charset=euc_kr \
--disable-debug \
--enable-track-vars=yes \
--with-oci8=/usr/local/oracle --with-oracle=/usr/local/oracle
- 컴파일중 oci8 관련 error를 만난다면 다음과 같이 수정한다.
다운받은 php소스 파일을 적당한 위치에 풀고 'configure'파일을 열어봅니다.
파일 내용을 보면 'OCI8_DIR/lib' , 'ORACLE_DIR/lib' 이런 두 개의 구문이 자주나오는데
이부분을 모두 'OCI8_DIR/lib32', 'ORACLE_DIR/lib32' 로 바꿔 줍니다.
:1,$s/OCI8_DIR\/lib/OCI8_DIR\/lib32/g
:1,$s/ORACLE_DIR\/lib/ORACLE_DIR\/lib32/g
Step 5 : Install 마무리하기
1. Apache
#vi /usr/local/apache/conf/httpd.conf
// php파일을 웹서버에서 인식하기 위해 아래두줄 추가
AddType application/x-httpd-php .php .phtml .php3 // php파일로 해석할 확장명설정
AddType application/x-httpd-php-source .phps // php 소스로 해석할 확장명설정
// 처음페이지로 인식할 파일명설정
DireactoryIndex index.html index.php
- oracle 연동은 되었으나 php함수 OCILogon()에서 error발생하는경우 apachectl 내부에 oracle유저와 같은 환경변수를 셋팅한다.
2. Test
-oracle은 다른 server 에서 시작되어있고
-mysql 시작하고
-apache 시작하고
-htdocs및에 test.php, test2.php, test3.php 를 만들고 웹에서 잘 열리는지 보면 된다.
Test.php
<?
phpinfo();
?>
test2.php
<?
echo "mysql link test code <p>";
$link = mysql_connect("localhost", "root", "")
or die("Could not connect");
print "Connected successfully";
?>
test3.php
<?
echo "Oracle link test code <p>";
$conn=OCILogon("tcsw","tcsw1234","oraits")or die("연결실패");
echo gettype($conn).":".get_resource_type($conn)."<p>";
echo OCIServerVersion($conn);
?>
끝 – 수고하셨습니다.
본문서는 이번 인스톨작업 하면서 일어낫던 문제들만을 다루었으며, 버젼 및 OS환경에 따라 새로운 문제가 나타날수 있다.
문서중 원저작자의 글을 그대로 카피한 부분이있으나 인터넷에서 바로 보고 창을 닫아버려서 표시 하지 못하였다. 죄송.
참고 문서는 일일이 열거 하기 난해하여 웹싸이트로 대신한다.
- www.phpschool
- database.sarang.net
- eibm.co.kr
- ibm.com/kr
- mysql, apache, php, oracle.com
- aixpdslib.seas.ucla.edu
** 기타 불법인용이나 문의 : pyj@eibm.co.kr