2016년 10월 18일 화요일

Linux PHP에 오라클 연동하기

오라클 사이트에서 운영체제에 맞는 Client를 다운받아 설치 한다.

































 



































 oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpmoracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

다운로드 완료 후 설치

# rpm -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
# rpm -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm


OCI8의 최신 버전을 사이트에서 확인 후 다운 받아 압축을 푼다.

# wget http://pecl.php.net/get/oci8-2.1.2.tgz
# tar xvzf oci8-2.1.2.tgz
# cd oci8-2.1.2


Oracle Client 설치 위치가 아래 경로를 확인하고 컴파일시해당 경로명 입력

32비트 : /usr/lib/oracle/12.1/client/lib/ 64비트: /usr/lib64/oracle/12.1/client/lib/


# phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib(64)/oracle/12.1/client/lib/
# make all install


여기까지 완료 되면 /usr/lib/php/modules에 oci8.so가 생성됨.

php에 해당 모듈 로드 하도록 설정 추가(/etc/php.d/ 에 ini 파일 추가)

# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
# service httpd restart


여기까지 완료 되면 php애소 oracle 함수 사용 가능함.

정상적으로 설치가 완료 되었는데 php에서 오류가 아래와 같이 날 경우 조치

아마도 여러분의 아파치 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  <-- 변경

댓글 없음:

댓글 쓰기