티스토리 뷰
php는 보통 mysql과 사용하는 경우가 많지만 오라클과 함께 사용하는 경우도 더러 있죠.
주 DB는 mysql 이지만 특정 데이터를 가져오기 위해 다른 곳에서 사용중인 오라클 DB를 조회해야할 때도 있고요.
php는 설치시에 기본적으로 오라클을 지원하는 모듈을 설치하지 않기 때문에
오라클과 연동하여 php의 오라클 관련 함수를 사용하려면 직접 설치해주셔야 합니다.
오라클 instant client 설치
http://www.oracle.com/technetwork/indexes/downloads/index.html#database
에 접속하여 Database 섹션의 Instant Client를 클릭합니다.
다운로드 목록이 나타나는데 여러분이 사용하시는 운영체제를 선택합니다.
Accept License Agreement를 체크해주시고
이 두개를 다운받습니다. 하나는 basic 다른 하나는 devel 입니다.
devel도 반드시 필요하니 2개를 모두 설치해주세요
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
다운로드 하셨다면 받은 파일을 서버에 업로드후 rpm을 실행해봅시다.
# rpm -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
# rpm -i oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
설치가 잘 되었는지 확인해볼까요
# rpm -qa | grep oracle
rpm 설치를 마쳤으니 파일은 삭제하셔도 무방합니다.# rm -f oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
# rm -f oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
OCI8 설치
현재(2013년 2월 18일) 기준으로 1.4.9 버전이 최신버전입니다.
Use 'pecl install oci8' to install for PHP 8.1.
Use 'pecl install oci8-3.0.1' to install for PHP 8.0.
Use 'pecl install oci8-2.2.0' to install for PHP 7.
Use 'pecl install oci8-2.0.12' to install for PHP 5.2 - PHP 5.6.
Use 'pecl install oci8-1.4.10' to install for PHP 4.3.9 - PHP 5.1.
사용하는 php 버전에 맞춰 최신버전의 oci8을 다운로드 받고 설치를 해봅시다.
여러분이 방금전 설치한 오라클 클라이언트는
32비트 운영체제라면 /usr/lib/oracle/11.2/client/lib/ 에
64비트 운영체제라면 /usr/lib64/oracle/11.2/client/lib/ 에 설치되었을테니(그렇지 않은 경우도 있습니다)
여러분에 맞는 경로를 입력해주셔야 합니다.
pecl으로 설치를 진행해주셔도 되고
# pecl install oci8-2.0.12
경로입력 요청시
instantclient,/usr/lib/oracle/11.2/client64/lib/
소스코드형태로 설치해주셔도 됩니다
# wget http://pecl.php.net/get/oci8-1.4.9.tgz
# tar xvzf oci8-1.4.9.tgz
# cd oci8-1.4.9
# phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib/
# make all install
이렇게 설치를 마치고 나면
/usr/lib(64)/php/modules 폴더에 oci8.so 파일이 있는것을 볼 수 있습니다.
이제 php가 이 모듈을 로드할수 있도록 해줘야 합니다.
/etc/php.d/ 에 ini 파일을 추가해주겠습니다.
php가 실행되면 여기에 있는 ini파일을 자동으로 로드합니다.# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
# service httpd restart
그리고 재실행
설치과정에 별다른 문제가 없었다면 이제 여러분들은 php의 oci 함수들을 사용하실 수 있습니다.
oci_connect 함수가 정의되지 않았다고 오류가 날때
이렇게 다 설치를 마치고 났는데도 불구하고
php에서 oci_connect 함수를 사용했는데 함수가 정의되지 않았다고 오류가 나타난다면 아래 처럼 해보세요.
아마도 여러분의 아파치 error_log에 이렇게 나타나있을겁니다.
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oci8.so' - libnnz11.so: cannot enable executable stack as shared object requires: Permission denied in Unknown on line 0
먼저 실행해주시고
# /usr/sbin/setenforce 0
# vi /etc/selinux/config
파일을 열어
SELINUX=disabled
로 바꿔주세요.
참고
http://jmnote.com/wiki/PHP%EC%97%90%EC%84%9C_%EC%98%A4%EB%9D%BC%ED%81%B4_DB_%EC%82%AC%EC%9A%A9
'WEB2.0 > 프로그래밍' 카테고리의 다른 글
SSL key의 passphrase 제거하기 (0) | 2013.03.06 |
---|---|
Lost connection to MySQL server at 'reading initial communication packet' (0) | 2013.02.22 |
Git 특정 파일, 특정 폴더 예외처리하기 (0) | 2013.01.02 |
cocos2d-x로 아이폰, 안드로이드 게임 동시에 개발하기 (3) | 2012.12.07 |
Mac OS X Mountain Lion에서 다운받은 프로그램 실행이 안되요 (3) | 2012.12.06 |
- Total
- Today
- Yesterday
- Apple
- 소프트웨어
- 게임
- 애플
- 창업
- 아이디어
- php
- 앱스토어
- 웹표준
- 네이버
- 구글
- 안드로이드
- 아이폰
- 스마트폰
- 앱
- 자바스크립트
- AWS
- 경진대회
- JavaScript
- CSS
- 모바일
- 공모전
- 어플리케이션
- 대학생
- iPhone
- android
- 트위터
- 벤처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |