PHP는 DSO모드로 설치했다고 가정하고 설명하겠습니다.(DSO원츄!)
web서버와 DB서버는 각각의 서버에 설치되어 있습니다.
보통 이럴경우 오라클 클라이언트를 설치했는데 설치방법이 많이 간단해졌네요. 후후후;;
엣날에 삽질했던거 생각하면... (OTL)
1.
오라클 라이브러리 다운로드
http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html
여기서 아래 2 파일을 다운로드 후
Instant Client Package
instantclient-basic-linux32-10.2.0.2-20060331.zip
Instant Client Package - SDK
instantclient-sdk-linux32-10.2.0.2-20060331.zip
/usr/lib/oracle 과 /usr/lib/oracle/sdk 에 각각 설치합니다.
2.
vi /etc/ld.so.conf
/usr/lib/oracle <-- 추가하고
ldconfig 명령어 실행
3.
PHP를 재설치합니다.
설치옵션은 많이 생략했습니다. 중요한건 --with-oci8-instant-client=/usr/lib/oracle 이부분입니다.
./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs --with-iconv --enable-iconv --with-oci8-instant-client=/usr/lib/oracle
make && make install
php.ini의
extension=php_oci8.dll 앞부분 주석 제거
4. tnsnames.ora 만들기
/usr/local/TNS_ADMIN/tnsnames.ora 생성
아래 샘플 참고하세요
oracle_db =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 서버IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SID명)
)
)
5. profile 수정
아래 2줄을 추가합니다.
export NLS_LANG=.KO16KSC5601
TNS_ADMIN="/usr/local/TNS_ADMIN/"
음 이제 apache를 restart하면 됩니다.
phpinfo()함수로 OCI8 부분섹션을 확인해보세요 :)
php에서 오라클 접속시 OCILogon 함수를 사용하면 됩니다. 다른 오라클 커넥션 함수는 안 먹더군요.
출처 : http://mrkim.kr/4
SSISO Community