PHP와 OCI 모듈이 연동되었는지는 OCI 함수 실행
# php -r "oci_connect();"
Fatal error: Call to undefined function oci_connect() in Command line code on line 1
=> 연동안된 상태
Warning: oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1
=>연동된 상태 (파라미터 오류)
php.ini를 열어 ;extension=oci8.so가 있는지 확인해보자. 만약 있다면 주석을 풀어주고 httpd를 재시작하면 바로 작동할 것
php.ini에 extension 설정이 없다면. /etc/php.d 에 oci8.ini 파일을 생성하여 설정해야함.
오라클 instant client 다운로드
리눅스용 instant client rpm(basic, devel)을 다운로드
https://www.oracle.com/database/technologies/instant-client/downloads.html
Instant Client for Linux x86-64 클릭
oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm 다운로드 (버전은 적절히..)
oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm 다운로드 (버전은 적절히..)
(다운로드시 로그인 필요)
다운받은 파일을 웹서버에 업로드
해당 디렉토리 이동 > 설치
# rpm -ivh oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
# rpm -ivh oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
설치파일 제거
# rm -f oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
# rm -f oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
OCI8 설치
http://pecl.php.net/package/oci8 여기에서 버전을 확인하고 다운받거나
# wget http://pecl.php.net/get/oci8-2.2.0.tgz 로 다운로드
압축해제
# tar xvzf oci8-2.2.0.tgz
이동
# cd oci8-2.2.0
phpize를 이용하여 모듈 추가
#phpize
-bash: phpize: command not found - 오류 발생시 php-devel 설치
# yum list php-devel
처음 php를 설치할 때 remi 저장소를 사용했다면.
확장모듈 설치할 때도 항상 remi 저장소를 사용해야 충돌이 나지 않음.
yum --enablerepo=remi-php56 install php-devel
Oracle 설치 경로 확인
32비트 운영체제라면 /usr/lib/oracle/19.3/client/lib/
64비트 운영체제라면 /usr/lib64/oracle/19.3/client/lib/
일수 있으나 직접 확인해 야 함
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/19.3/client64/lib
# make all install
설치 완료
/usr/lib64/php/modules 폴더에 oci8.so 파일이 있는것 확인 (경로는 다를 수 있음)
# ll /usr/lib64/php/modules/oci8.so
oci 모듈을 로딩하도록 설정
# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
httpd 재시작
systemctl restart httpd
---------------------------
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
로 바꿔주세요.
출처: https://trend21c.tistory.com/1489 [나를 찾는 아이]
---------------------------
참고
https://zetawiki.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
https://zetawiki.com/wiki/CentOS_php-devel_%EC%84%A4%EC%B9%98
'[ 서버 & DB 관련 ] > 리눅스' 카테고리의 다른 글
yum, rpm 으로 패키지 설치 시 참조 (0) | 2019.08.06 |
---|---|
gitlab 설치하기 (링크) (0) | 2019.07.24 |
php-xml 설치시 오류 발생 (0) | 2019.07.16 |
(리눅스) php 서버 이전시 체크 사항 (0) | 2019.07.08 |
리눅스 예약 작업(스케쥴작업) crontab(크론탭) + php (0) | 2019.06.21 |