오라클 9i+ php5 연동 매뉴얼
※본 문서는 Linux RedHat9 교재에 있는 오라클과 php4.4.2 연동 내용을 참고함
-설치 순서
1. 우선 Linux RedHat9 와 오라클 9i가 설치되어 있어야 한다.
2. Apache 2.0.58 Released 설치(http://www.apache.org/)
3. PHP-5.1.4 설치(http://www.php.net/downloads.php/)
4. 환경설정 파일 수정
1. Linux RedHat9 와 오라클 9i 설치는 각자 알아서 설치한다.(-_-;;)
2. Apache 2.0.59 Released 설치
1)httpd-2.0.59.tar.gz 다운
2)tar xvfz httpd-2.0.59.tar.gz
3)cd httpd-2.0.59
4)./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-modules=so
--with-mpm=worker --enable-module=vhost_alias
5)make && make install
6)echo "/usr/local/apache/lib" >> /etc/ld.so.conf
7)echo "/usr/local/apache/modules" >> /etc/ld.so.conf
8)ldconfig
3.PHP-5.1.4 설치
※설치전에 다음에 4가지를 설치한다.
-libjpeg 설치
• wget http://ftp.superuser.co.kr/pub/etc/jpegsrc.v6b.tar.gz
• tar zxvf jpegsrc.v6b.tar.gz
• cd jpeg-6b/
• ./configure --enable-shared --enable-static
• make
• make test
• mkdir /usr/local/man/man1 -p
• make install
• cd ..
• rm -rf jpeg*
-libpng 설치
• wget http://ftp.superuser.co.kr/pub/etc/libpng-1.2.5.tar.gz
• tar zxvf libpng-1.2.5.tar.gz
• cd libpng-1.2.5
• cp scripts/makefile.linux makefile
• make test && make install
-zlib 설치
• wget http://ftp.superuser.co.kr/pub/etc/zlib-1.1.4.tar.gz
• tar zxvf zlib-1.1.4.tar.gz
• cd zlib-1.1.4
• ./configure && make && make install
• cd ..
• rm -rf zlib-1.1.4*
-libxml2-2.6.11설치(2.6.11 버전이 아니라서 에러날 경우)
• wget ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.11.tar.gz
• tar zxvf libxml2-2.6.11.tar.gz
• ./configure --prefix=/usr
• make && make install
1)오라클 클라이언트 설치한 디렉토리에755 퍼미션 준다.(중요)
(아파치 php함수들을 사용하기 위해서, 안하면 퍼미션 에러 뜬다.)
chmod -R 755 /home/oracle
2)php-5.1.4.tar.gz
3)tar xvfz php-5.1.4.tar.gz
4)cd PHP-5.1.4
5)./configure --with-exec-dir=/usr/local/apache/bin --with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/apache/conf --with-oracle=/home/oracle/oracle/product/9.2.0
--with-oci8=/home/oracle/oracle/product/9.2.0 --enable-track-vars
--enable-sigchild <-- 이거 좀비 프로세스 생성방지를 위한 옵션
6)make && make install
7)cp php.ini-dist /usr/local/apache/conf/php.ini
4. 환경설정 파일 수정
1)httpd.conf 파일내부 옵션 수정
• vi /usr/local/apache/conf/httpd.conf
• 321 ServerName 자기 IP 또는 HostName 입력(211.254.138.180:80)
• 337 DocumenRoot "/usr/local/apache/htdocs" -->원하는 위치로 수정가능.
• 424 DirectoryIndx index.php index.html index.html.var
• 867 AddType application/x-httpd-php .php .php3 .php4 .php5 .html .htm
• 868 AddType application/x-httpd-php-source .phps
2)php.ini 파일내부 옵션 수정
• vi /usr/local/apache/conf/php.ini
• 399 register_globals=Off --> On
• 471 extension_dir="./" --> "/usr/local/apache/modules/"
• 599 ;extension=php_msql.dll
• 600 extension=php_oci8.dll // 이부분 주석 ; 을 풀어준다
• 601 ;extension=php_openssl.dll
• 602 extension=php_oracle.dll // 이부분 주석 ; 을 풀어준다
3)sqlnet.ora 파일내부 옵션 수정
• vi /home/oracle/oracle/product/9.2.0/network/admin/sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME) <- 추가한 내용
#NAMES.DIRECTORY_PATH= (TNSNAMES) <-- 기존의 내용
위처럼 수정한다.
4)아파치 웹서비스가 오라클관련 명령어들을 사용살수 있도록 아파치 실행 명령어에 아래와 같이 추가
• cd /home/oracle
• vi .bash_profile 안에 내용중에서 아래 부분 복사
# Oracle Environment
export LD_ASSUME_KERNER=2.4.1
export ORACLE_BASE=/home/oracle/oracle
export ORACLE_HOME=/home/oracle/oracle/product/9.2.0
export ORACLE_SID=hdba180 <-- 요거 자기의 sid명 들어감.. 따라하지 마시길..ㅋ
export ORACLE_TERM=xterm
export ORACLE_OWNER=oracle
export LANG="C"
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
• vi /usr/local/apache/bin/apachectl 열어서.
#!/bin/sh
#
아래에 추가
그리고 저장하고 아파치 정지 -> 스타트
• cd /usr/local/apache/bin
• ./apachectl stop
• ./apachectl start
----------------------------------------------------------------
●테스트
/usr/local/apache/htdocs 에 test.php 파일을 아래와 같이 작성합니다
<?
$conn=OCILogon("scott", "tiger", "tns이름");
if(!$conn)
{
echo "데이터베이스 연결 실패...ㅠㅠ";
}
else
{
echo "호스트 연결 성공~!! *^^*";
$query = "select * from emp";
$stmt = ociparse($conn,$query);
OCIExecute($stmt);
OCIFetchInto ($stmt, &$rows, OCI_ASSOC);
echo "<br>사원명: $rows[ENAME]";
}
OCIlogoff($conn);
?>
출처 : http://cafe.naver.com/afan/134