Centos에서 yum php-oci8.i386을 설치하니, 다음과 같은 에러가 나온다.
[root@sitehis rpm]# php
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/oci8.so' - libclntsh.so.12.1: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_oci.so' - libclntsh.so.12.1: cannot open shared object file: No such file or directory in Unknown on line 0
오라클 12.1 버전의 클라이언트가 설치되어 있지 않기 때문이다.
그래서 오라클가서 다운 받는다.
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
그리고 rpm을 설치한다.
[root@sitehis rpm]# ll
합계 57376
-rw-r--r-- 1 root root 58066286 1월 25 12:42 oracle-instantclient11.2-basic-11.2.0.4.0-1.i386.rpm
-rw-r--r-- 1 root root 610198 1월 25 12:42 oracle-instantclient11.2-devel-11.2.0.4.0-1.i386.rpm
[root@sitehis rpm]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.i386.rpm
준비 중... ########################################### [100%]
1:oracle-instantclient11.########################################### [100%]
[root@sitehis rpm]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.i386.rpm
준비 중... ########################################### [100%]
1:oracle-instantclient11.########################################### [100%]
path를 export해야하니, profile.d 에도 추가한다.
[root@sitehis rpm]# cat /etc/profile.d/oracle.sh
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client/lib:$LD_LIBRARY_PATH
export ORACLE_HOME=/usr/lib/oracle/12.1/client
export OCI_INCLUDE_DIR=/usr/include/oracle/12.1/client
export OCI_LIB_DIR=/usr/lib/oracle/12.1/client/lib
export TNS_ADMIN=/usr/lib/oracle/12.1/tnsadmin
[root@sitehis rpm]# export PATH=/usr/lib/oracle/12.1/client/bin:$PATH
그런데.. 또 에러..
ERROR [Error: ORA-12154: TNS:could not resolve the connect identifier specified]
이것보고 해결함
https://github.com/joeferner/node-oracle/issues/59
[root@sitehis lib]# cat /usr/lib/oracle/12.1/tnsadmin/tnsnames.ora
ORATEST=
(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 210.xxx.xxx.xxx)(PORT = 1523))
(CONNECT_DATA = (SERVER = DEDICATED)(SID = OPENDBT)))
[root@sitehis lib]#
$con = oci_connect('new21','new21pass', 'oratest');
print_r($con);
<기타 참고>
https://www.lesstif.com/pages/viewpage.action?pageId=23757143
http://shiki.me/blog/installing-pdo_oci-and-oci8-php-extensions-on-centos-6-4-64bit/
setsebool -P httpd_can_network_connect_db on
chcon -t textrel_shlib_t /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
|