PHP 5.3 Oracle 클 라 이언 트 및 PDO 연결OCI 모듈 의 설치 방법

5580 단어 PHP5.3OraclePDO OCI
본 논문 의 사례 는 PHP 5.3 연결 Oracle 클 라 이언 트 및 PDOOCI 모듈 의 설치 방법.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
php 가 Oacle 데이터 베 이 스 를 연결 하 는 것 은 최 적 파트너 는 아니 지만 팀 내 개발 에 이런 수요 가 있 습 니 다.만약 에 적당 한 문 서 를 참고 하지 않 았 다 면 이 과정 은 사람 을 괴 롭 혔 을 것 이다.다음은 기록 이다.원형 은 외국 의 블 로그Installing PDO_OCI and OCI8 PHP extensions on CentOS 6.4 64bit이다.
phop 환경 이 설치 되 어 있다 고 가정 하면 phop 버 전 은 5.3 이 고 연결 할 Oacle 서버 는 11g R2 이 며 운영 체제 버 전 CentOS 6.4 x86 입 니 다.64。php 가 설치 되 어 있 지 않 으 면 다음 명령 을 통 해 설치 할 수 있 습 니 다.

# yum install php php-pdo
# yum install php-devel php-pear php-fpm php-gd php-ldap \
php-mbstring php-xml php-xmlrpc php- zlib zlib-devel bc libaio glibc

웹 서버 가 apache 를 사용한다 면.
1.InstantClient 설치
instantclient 는 Oacle 의 데이터 베 이 스 를 연결 하 는 간단 한 클 라 이언 트 입 니 다.500 Moracle 클 라 이언 트 를 설치 하지 않 아 도 Oacle 데이터 베 이 스 를 연결 할 수 있 습 니 다.windows 와 Liux 버 전이 있 습 니 다.여기에서 필요 한 버 전 을 선택 하여 다운로드 하려 면 Basic 과 Devel 두 개의 rpm 패키지 만 있 으 면 됩 니 다.
설치 하 다.

# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

소프트 링크

# ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
# ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client

64 비트 시스템 은 32 비트 의 소프트 링크 를 만들어 야 합 니 다.여 기 는 bug 가 남아 있 을 수 있 습 니 다.그렇지 않 으 면 나중에 컴 파일 하 는 데 문제 가 생 길 수 있 습 니 다.
다음은 Oacle 클 라 이언 트 의 라 이브 러 리 파일 을 찾 아 LD 를 수정 할 수 있 도록 해 야 합 니 다.LIBRARY_PATH:

# vi /etc/profile.d/oracle.sh
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

source/etc/profile.d/oracle.sh 를 실행 하여 환경 변 수 를 유효 하 게 합 니 다.
2.PDO 설치OCI
인터넷 에 연 결 된 상황 에서 pecl 온라인 을 통 해 phop 을 설치 하 는 확장 은 매우 간단 합 니 다.How to install oracle instantclient and pdo 참조oci on ubuntu machine 。
https://pecl.php.net/package/PDO_OCI에서 PDO 다운로드OCI-1.0.tgz 원본 파일.

# wget https://pecl.php.net/get/PDO_OCI-1.0.tgz
# tar -xvf PDO_OCI-1.0.tgz
# cd PDO_OCI-1.0

PDO 때문에OCI 가 오랫동안 업데이트 되 지 않 았 기 때문에 ODI 편집 이 필요 합 니 다.OCI-1.0 폴 더 의 config.m4 파일 은 11g 을 지원 합 니 다.

#   10             ,     :
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
 PDO_OCI_VERSION=11.2
#   101        :
11.2)
 PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
 ;;

컴 파일 설치 pdooci 확장:(설치 완료 후/usr/lib 64/php/modules/pdooci.so 이 모듈 찾기)

$ phpize
$ ./configure --with-pdo-oci=instantclient,/usr,11.2
$ make
$ sudo make install

이 확장 자 를 사용 하려 면/etc/php.d/다음 에 pdo 를 새로 만 듭 니 다.oci.ini 파일,내용:

extension=pdo_oci.so

인증 설치 성공:
# php -i|grep oci
다음 과 같은 내용 을 보면 설치 에 성공 합 니 다:
/etc/php.d/pdo_oci.ini,

PDO drivers => oci, sqlite
혹시

# php -m

3.OCI 8 설치
https://pecl.php.net/package/oci8에서 oci 8-2.0.8.tgz 원본 파일 을 다운로드 합 니 다.

# wget https://pecl.php.net/get/oci8-2.0.8.tgz
# tar -xvf oci8-2.0.8.tgz
# cd oci8-2.0.8

컴 파일 설치 oci 8 확장:

# phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
# make
# make install

이 확장 자 를 사용 하려 면/etc/php.d/다음 에 oci 8.ini 파일 을 새로 만 듭 니 다.내용:

extension=oci8.so

인증 설치 성공:

# php -i|grep oci8
/etc/php.d/oci8.ini,
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
OLDPWD => /usr/local/src/oci8-2.0.8
_SERVER["OLDPWD"] => /usr/local/src/oci8-2.0.8

마지막 으로 apache 와 같은 역 웹 서버 를 다시 시작 하 는 것 을 잊 지 마 세 요.phopinfo()를 통 해 확장 이 성공 적 으로 설치 되 었 는 지 확인 할 수 있 습 니 다.
4.테스트 연결
apache 와 같은 웹 서버 의 phop 디 렉 터 리 에 testoci.php 를 만 듭 니 다.

<?php
$conn = oci_connect('username', 'password', '172.29.88.178/DBTEST');
$stid = oci_parse($conn, 'select table_name from user_tables');
oci_execute($stid);
echo "<table>
"; while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { echo "<tr>
"; foreach ($row as $item) { echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>
"; } echo "</tr>
"; } echo "</table>
"; ?>
이 페이지 를 방문 하면 결 과 를 얻 을 수 있 을 것 입 니 다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기