"PHP에서 오라클 DB 사용"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(사용자 4명의 중간 판 38개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{테스트|CentOS 6.2, 64비트}}
{{테스트|CentOS 6.2 64비트}}
;PHP에서 오라클 DB 사용하기
;PHP에서 오라클 DB 사용하기
;PHP와 Oracle 사용하기
;PHP Oracle 연동
;oci8 설치


==PHP-OCI 연동 확인 (실패)==
==PHP-OCI 연동 확인 (실패)==
PHP와 OCI 모듈이 연동되었는지는 OCI 함수를 하나 실행해보면 알 수 있다.
PHP와 OCI 모듈이 연동되었는지는 OCI 함수를 하나 실행해보면 알 수 있다.
;명령어
<source lang='bash'>
php -r "oci_connect();"
</source>
;실행예시
<source lang='dos'>
[root@jmnote ~]# php -r "oci_connect();"
PHP Fatal error:  Call to undefined function oci_connect() in Command line code on line 1


<syntaxhighlight lang='console'>
[root@zetawiki ~]# php -r "oci_connect();"
Fatal error: Call to undefined function oci_connect() in Command line code on line 1
Fatal error: Call to undefined function oci_connect() in Command line code on line 1
</source>
</syntaxhighlight>
:→ oci_connect라는 함수를 찾을 수 없다고 한다. 즉 PHP와 OCI 모듈이 연동되지 않았다.
:→ [[oci_connect()]]라는 함수를 찾을 수 없다고 한다. 즉 PHP와 OCI 모듈이 연동되지 않았다.


==PHP 설정 확인==
==PHP 설정 확인==
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# php --ini
[root@zetawiki ~]# php --ini
Configuration File (php.ini) Path: /etc
Configuration File (php.ini) Path: /etc
Loaded Configuration File:        /etc/php.ini
Loaded Configuration File:        /etc/php.ini
35번째 줄: 31번째 줄:
/etc/php.d/sqlite3.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/zip.ini
/etc/php.d/zip.ini
</source>
</syntaxhighlight>
:→ /etc/php.ini 파일과 /etc/php.d/*.ini 파일들이 설정 파일이다.
:→ /etc/php.ini 파일과 /etc/php.d/*.ini 파일들이 설정 파일이다.
:→ 우선 php.ini를 열어 <code>;extension=oci8.so</code>가 있는지 확인해보자. 만약 있다면 주석을 풀어주고 httpd를 재시작하면 바로 작동할 것이다.
:→ 우선 php.ini를 열어 <code>;extension=oci8.so</code>가 있는지 확인해보자. 만약 있다면 주석을 풀어주고 httpd를 재시작하면 바로 작동할 것이다.
46번째 줄: 42번째 줄:
*[Instant Client for Linux x86-64]
*[Instant Client for Linux x86-64]
*(O) Accept License Agreement
*(O) Accept License Agreement
*oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm 클릭
*oracle-instantclient11.2-'''basic'''-11.2.0.3.0-1.x86_64.rpm 클릭
*오라클 계정 로그인<ref>계정 없으면 가입...</ref>하여 다운로드
*오라클 계정 로그인<ref>계정 없으면 가입...</ref>하여 다운로드
*http://www.oracle.com/technetwork/indexes/downloads/index.html#database 재접속
*http://www.oracle.com/technetwork/indexes/downloads/index.html#database 재접속
*"Database" --- [Instant Client]
*"Database" --- [Instant Client]
*[Instant Client for Linux x86-64]
*(O) Accept License Agreement (체크된 것으로 보여도 클릭해줘야 함;;)
*(O) Accept License Agreement (체크된 것으로 보여도 클릭해줘야 함;;)
*oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm 클릭하여 다운로드
*oracle-instantclient11.2-'''devel'''-11.2.0.3.0-1.x86_64.rpm 클릭하여 다운로드


==오라클 instant client 설치==
==오라클 instant client 설치==
57번째 줄: 54번째 줄:
*서버에서 아래 명령어 실행
*서버에서 아래 명령어 실행


;명령어
{{소스헤더|명령어}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
rpm -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
rpm -ivh 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 -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm  
rpm -qa | grep oracle
rpm -qa | grep oracle
</source>
</syntaxhighlight>


;실행예시 (실패)
{{소스헤더|실행예시 (실패)}}
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# rpm -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
[root@zetawiki ~]# rpm -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
error: Failed dependencies:
error: Failed dependencies:
         libaio is needed by oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64
         libaio is needed by oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64
</source>
</syntaxhighlight>
:→ libaio 필요. [[libaio 설치]] 후 다시 시도.
:→ libaio 필요. [[libaio 설치]] 후 다시 시도.


;실행예시 (성공)
{{소스헤더|실행예시 (성공)}}
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# rpm -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm  
[root@zetawiki ~]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
[root@jmnote ~]# rpm -i oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm  
Preparing...                ########################################### [100%]
[root@jmnote ~]# rpm -qa | grep oracle   
  1:oracle-instantclient11.########################################### [100%]
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm  
Preparing...                ########################################### [100%]
  1:oracle-instantclient11.########################################### [100%]
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# rpm -qa | grep oracle   
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64
</source>
</syntaxhighlight>
:→ 정상적으로 설치되었다.
:→ 정상적으로 설치되었다.


;설치파일 제거
{{소스헤더|설치파일 제거}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
rm -f oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.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
rm -f oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
</source>
</syntaxhighlight>


==OCI8 설치==
==OCI8 설치==
;명령어
{{소스헤더|명령어}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
pecl download oci8
pecl download oci8-1.4.9.tgz
tar xvzf oci8-1.4.7.tgz
tar xvzf oci8-1.4.9.tgz
cd oci8-1.4.7
cd oci8-1.4.9
phpize
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
make all install
make all install
</source>
</syntaxhighlight>
위에서 OCI8 다운로드 부분인 <code>pecl download oci8</code>은, 이것 대신 <code><nowiki>wget http://pecl.php.net/get/oci8-1.4.7.tgz</nowiki></code>를 실행하거나, http://pecl.php.net/package/oci8 에서 직접 다운로드해도 된다.
위에서 OCI8 다운로드 부분인 <code>pecl download oci8-1.4.9.tgz</code>은, 이것 대신 <code><nowiki>wget http://pecl.php.net/get/oci8-1.4.9.tgz</nowiki></code>를 실행하거나, http://pecl.php.net/package/oci8 에서 직접 다운로드해도 된다.


;실행예시 (실패)
{{소스헤더|실행예시 (실패)}}
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# pecl download oci8
[root@zetawiki ~]# pecl download oci8-1.4.9.tgz
-bash: pecl: command not found
-bash: pecl: command not found
</source>
</syntaxhighlight>
:→ [[pecl 설치]] 후 재시도
:→ [[pecl 설치]] 후 재시도
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote oci8-1.4.7]# phpize
[root@zetawiki oci8-1.4.9]# phpize
-bash: phpize: command not found
-bash: phpize: command not found
</source>
</syntaxhighlight>
:→ [[php-devel 설치]] 후 재시도
:→ [[php-devel 설치]] 후 재시도
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote oci8-1.4.7]# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
[root@zetawiki oci8-1.4.9]# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
checking for grep that handles long lines and -e... /bin/grep
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for egrep... /bin/grep -E
119번째 줄: 124번째 줄:
checking for cc... no
checking for cc... no
checking for gcc... no
checking for gcc... no
configure: error: in `/root/oci8-1.4.7':
configure: error: in `/root/oci8-1.4.9':
configure: error: no acceptable C compiler found in $PATH
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
See `config.log' for more details.
</source>
</syntaxhighlight>
:→ C 컴파일러가 없다고 한다. [[gcc 설치]] 후 재시도
:→ C 컴파일러가 없다고 한다. [[gcc 설치]] 후 재시도
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote oci8-1.4.7]# make all install
[root@zetawiki oci8-1.4.9]# make all install
-bash: make: command not found
-bash: make: command not found
</source>
</syntaxhighlight>
:→ make가 없다고 한다. [[make 설치]] 후 재시도
:→ make가 없다고 한다. [[make 설치]] 후 재시도


;실행예시 (성공)
{{소스헤더|실행예시 (성공)}}
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# pecl download oci8
[root@zetawiki ~]# pecl download oci8-1.4.9.tgz
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading oci8-1.4.9.tgz ...
downloading oci8-1.4.7.tgz ...
Starting to download oci8-1.4.9.tgz (169,255 bytes)
Starting to download oci8-1.4.7.tgz (168,584 bytes)
.....................................done: 169,255 bytes
.....................................done: 168,584 bytes
File /root/oci8-1.4.9.tgz downloaded
File /root/oci8-1.4.7.tgz downloaded
</syntaxhighlight>
</source>
<syntaxhighlight lang='console'>
<source lang='dos'>
[root@zetawiki ~]# tar xvzf oci8-1.4.9.tgz  
[root@jmnote ~]# tar xvzf oci8-1.4.7.tgz  
package.xml
oci8-1.4.7/tests/array_bind_001.phpt
oci8-1.4.7/tests/array_bind_002.phpt
... (생략)
... (생략)
oci8-1.4.7/php_oci8.h
oci8-1.4.9/php_oci8.h
oci8-1.4.7/php_oci8_int.h
oci8-1.4.9/php_oci8_int.h
oci8-1.4.7/README
oci8-1.4.9/README
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# cd oci8-1.4.7
[root@zetawiki ~]# cd oci8-1.4.9
[root@jmnote oci8-1.4.7]# phpize
[root@zetawiki oci8-1.4.9]# phpize
Configuring for:
Configuring for:
PHP Api Version:        20090626
PHP Api Version:        20090626
Zend Module Api No:      20090626
Zend Module Api No:      20090626
Zend Extension Api No:  220090626
Zend Extension Api No:  220090626
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote oci8-1.4.7]# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
[root@zetawiki oci8-1.4.9]# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
... (생략)
... (생략)
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: creating ./config.status
configure: creating ./config.status
config.status: creating config.h
config.status: creating config.h
config.status: executing libtool commands
config.status: executing libtool commands
</source>
</syntaxhighlight>
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote oci8-1.4.7]# ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
[root@zetawiki oci8-1.4.9]# ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
[root@jmnote oci8-1.4.7]# make all install
[root@zetawiki oci8-1.4.9]# make all install
/bin/sh /root/oci8-1.4.7/libtool --mode=compile cc  -I. -I/root/oci8-1.4.7 -DPHP_ATOM_INC -I/root/oci8-1.4.7/include -I/root/oci8-1.4.7/main -I/root/oci8-1.4.7 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/oracle/11.2/client64  -DHAVE_CONFIG_H  -g -O2  -c /root/oci8-1.4.7/oci8.c -o oci8.lo
libtool: compile:  cc -I. -I/root/oci8-1.4.7 -DPHP_ATOM_INC -I/root/oci8-1.4.7/include -I/root/oci8-1.4.7/main -I/root/oci8-1.4.7 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/oracle/11.2/client64 -DHAVE_CONFIG_H -g -O2 -c /root/oci8-1.4.7/oci8.c  -fPIC -DPIC -o .libs/oci8.o
... (생략)
... (생략)
Build complete.
Build complete.
179번째 줄: 173번째 줄:


Installing shared extensions:    /usr/lib64/php/modules/
Installing shared extensions:    /usr/lib64/php/modules/
</source>
</syntaxhighlight>
:→ /usr/lib64/php/modules/ 에 PHP 확장기능 oci8.so 가 설치되었다.
:→ /usr/lib64/php/modules/ 에 PHP 확장기능 oci8.so 가 설치되었다.
*확인
 
<source lang='dos'>
{{소스헤더|확인}}
[root@jmnote oci8-1.4.7]# ll /usr/lib64/php/modules/oci8.so  
<syntaxhighlight lang='console'>
-rwxr-xr-x 1 root root 505283 Jun 15 11:31 /usr/lib64/php/modules/oci8.so
[root@zetawiki oci8-1.4.9]# ll /usr/lib64/php/modules/oci8.so  
</source>
-rwxr-xr-x 1 root root 502555 Jun 19 14:44 /usr/lib64/php/modules/oci8.so
</syntaxhighlight>


==PHP와 OCI 연동==
==PHP와 OCI 연동==
;명령어
{{소스헤더|명령어}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
echo 'extension=oci8.so' > /etc/php.d/oci8.ini
echo 'extension=oci8.so' > /etc/php.d/oci8.ini
service httpd restart
service httpd restart
</source>
</syntaxhighlight>


;실행예시
{{소스헤더|실행예시}}
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote oci8-1.4.7]# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
[root@zetawiki oci8-1.4.9]# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
[root@jmnote oci8-1.4.7]# service httpd restart
[root@zetawiki oci8-1.4.9]# service httpd restart
Stopping httpd:                                            [  OK  ]
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
</source>
</syntaxhighlight>


==PHP-OCI 연동 확인 (성공)==
==PHP-OCI 연동 확인 (성공)==
;명령어
{{소스헤더|명령어}}
<source lang='bash'>
<syntaxhighlight lang='bash'>
php -r "oci_connect();"
php -r "oci_connect();"
</source>
</syntaxhighlight>
 
;실행예시
<source lang='dos'>
[root@jmnote ~]# php -r "oci_connect();"
PHP Warning:  oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1


{{소스헤더|실행예시}}
<syntaxhighlight lang='console'>
[root@zetawiki ~]# php -r "oci_connect();"
Warning: oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1
Warning: oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1
</source>
</syntaxhighlight>
:→ oci_connect의 사용법이 잘못되었다고 한다. PHP와 OCI 모듈이 연동된 것이다.
:→ oci_connect의 사용법이 잘못되었다고 한다. PHP와 OCI 모듈이 연동된 것이다.
이제 통상적인 PHP 개발로 넘어가면 된다.
이제 통상적인 PHP 개발로 넘어가면 된다.
==주석==
<references/>


==같이 보기==
==같이 보기==
226번째 줄: 216번째 줄:
*[[PHP에서 PostgreSQL 사용하기]]
*[[PHP에서 PostgreSQL 사용하기]]
*[[리눅스 APM 설치]]
*[[리눅스 APM 설치]]
*[[APC 설치]]
*[[pecl_http 설치]]
*[[PHP Fatal error]]


==참고 자료==
==참고==
*http://www.php.net/manual/en/oci8.installation.php
* http://www.php.net/manual/en/oci8.installation.php
* http://trend21c.tistory.com/1489
* https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_install&wr_id=115022


[[분류: PHP]]
[[분류: PHP]]
[[분류: 오라클 DB]]
[[분류: 오라클 DB]]

2020년 11월 2일 (월) 00:56 기준 최신판

PHP에서 오라클 DB 사용하기
PHP와 Oracle 사용하기
PHP Oracle 연동
oci8 설치

1 PHP-OCI 연동 확인 (실패)[ | ]

PHP와 OCI 모듈이 연동되었는지는 OCI 함수를 하나 실행해보면 알 수 있다.

[root@zetawiki ~]# php -r "oci_connect();"
Fatal error: Call to undefined function oci_connect() in Command line code on line 1
oci_connect()라는 함수를 찾을 수 없다고 한다. 즉 PHP와 OCI 모듈이 연동되지 않았다.

2 PHP 설정 확인[ | ]

[root@zetawiki ~]# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/curl.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/json.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/zip.ini
→ /etc/php.ini 파일과 /etc/php.d/*.ini 파일들이 설정 파일이다.
→ 우선 php.ini를 열어 ;extension=oci8.so가 있는지 확인해보자. 만약 있다면 주석을 풀어주고 httpd를 재시작하면 바로 작동할 것이다.
→ 그런데 위의 예시같은 경우에는 php.ini에 extension 설정이 없을 것이다. /etc/php.d 에 oci8.ini 파일을 생성하여 설정하라는 의미이다.

3 오라클 instant client 다운로드[ | ]

리눅스용 instant client rpm(basic, devel)을 다운로드해보자

4 오라클 instant client 설치[ | ]

  • 위에서 받은 파일 2개를 리눅스 서버에 업로드
  • 서버에서 아래 명령어 실행
명령어
rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm 
rpm -qa | grep oracle
실행예시 (실패)
[root@zetawiki ~]# rpm -i oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
error: Failed dependencies:
        libaio is needed by oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64
→ libaio 필요. libaio 설치 후 다시 시도.
실행예시 (성공)
[root@zetawiki ~]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
Preparing...                ########################################### [100%]
   1:oracle-instantclient11.########################################### [100%]
[root@zetawiki ~]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:oracle-instantclient11.########################################### [100%]
[root@zetawiki ~]# rpm -qa | grep oracle  
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64
→ 정상적으로 설치되었다.
설치파일 제거
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

5 OCI8 설치[ | ]

명령어
pecl download 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/client64/lib
ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
make all install

위에서 OCI8 다운로드 부분인 pecl download oci8-1.4.9.tgz은, 이것 대신 wget http://pecl.php.net/get/oci8-1.4.9.tgz를 실행하거나, http://pecl.php.net/package/oci8 에서 직접 다운로드해도 된다.

실행예시 (실패)
[root@zetawiki ~]# pecl download oci8-1.4.9.tgz
-bash: pecl: command not found
pecl 설치 후 재시도
[root@zetawiki oci8-1.4.9]# phpize
-bash: phpize: command not found
php-devel 설치 후 재시도
[root@zetawiki oci8-1.4.9]# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... no
checking for gcc... no
configure: error: in `/root/oci8-1.4.9':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
→ C 컴파일러가 없다고 한다. gcc 설치 후 재시도
[root@zetawiki oci8-1.4.9]# make all install
-bash: make: command not found
→ make가 없다고 한다. make 설치 후 재시도
실행예시 (성공)
[root@zetawiki ~]# pecl download oci8-1.4.9.tgz
downloading oci8-1.4.9.tgz ...
Starting to download oci8-1.4.9.tgz (169,255 bytes)
.....................................done: 169,255 bytes
File /root/oci8-1.4.9.tgz downloaded
[root@zetawiki ~]# tar xvzf oci8-1.4.9.tgz 
... (생략)
oci8-1.4.9/php_oci8.h
oci8-1.4.9/php_oci8_int.h
oci8-1.4.9/README
[root@zetawiki ~]# cd oci8-1.4.9
[root@zetawiki oci8-1.4.9]# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
[root@zetawiki oci8-1.4.9]# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
... (생략)
configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands
[root@zetawiki oci8-1.4.9]# ln -s /usr/include/oracle/11.2/client64/ /usr/lib/oracle/11.2/client64/lib/include
[root@zetawiki oci8-1.4.9]# make all install
... (생략)
Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/lib64/php/modules/
→ /usr/lib64/php/modules/ 에 PHP 확장기능 oci8.so 가 설치되었다.
확인
[root@zetawiki oci8-1.4.9]# ll /usr/lib64/php/modules/oci8.so 
-rwxr-xr-x 1 root root 502555 Jun 19 14:44 /usr/lib64/php/modules/oci8.so

6 PHP와 OCI 연동[ | ]

명령어
echo 'extension=oci8.so' > /etc/php.d/oci8.ini
service httpd restart
실행예시
[root@zetawiki oci8-1.4.9]# echo 'extension=oci8.so' > /etc/php.d/oci8.ini
[root@zetawiki oci8-1.4.9]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

7 PHP-OCI 연동 확인 (성공)[ | ]

명령어
php -r "oci_connect();"
실행예시
[root@zetawiki ~]# php -r "oci_connect();"
Warning: oci_connect() expects at least 2 parameters, 0 given in Command line code on line 1
→ oci_connect의 사용법이 잘못되었다고 한다. PHP와 OCI 모듈이 연동된 것이다.

이제 통상적인 PHP 개발로 넘어가면 된다.

8 같이 보기[ | ]

9 참고[ | ]

  1. 계정 없으면 가입...
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}