PHP 5.3 Oracle 클 라 이언 트 및 PDO 연결OCI 모듈 의 설치 방법
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) : " ")."</td>
";
}
echo "</tr>
";
}
echo "</table>
";
?>
이 페이지 를 방문 하면 결 과 를 얻 을 수 있 을 것 입 니 다.더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용하여 PHP5.3/Apache2 로컬 환경을 구축하는 방법PHP 7.2가 곧 릴리스 되려고 하는 요즘이지만, 아직 PHP5.3을 이용하고 있는 시스템도 적지 않다고 생각합니다. 이번에는 Docker를 이용하여 PHP5.3/Apache의 로컬 환경을 구축하는 방법을 정리합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.