POD 확장은 PHP5에 추가되었습니다. 이 확장은 데이터베이스에 액세스하기 위해 PHP 내장 클래스 PDO를 제공하여 일관성 없는 데이터베이스 연결 문제를 해결합니다. 다음 기사에서는 PHP가 PDO를 사용하여 Oracle 데이터베이스에 액세스하는 단계를 주로 소개합니다.
머리말
PDO는 기존 데이터베이스 확장의 성공과 실패에 대해 처음부터 배웠습니다. PDO의 코드는 완전히 새로운 것이기 때문에 PHP 5의 최신 기능을 활용하기 위해 처음부터 성능을 다시 설계할 수 있는 기회가 있습니다.
PDO는 공통 데이터베이스 기능을 기본으로 제공하는 동시에 RDBMS의 고유한 기능에 쉽게 액세스할 수 있도록 설계되었습니다.
LAMP에서는 PHP와 Mysql이 표준 페어링이지만 회사 프로젝트에서는 각각 런타임 라이브러리와 단일 라이브러리로 Mysql과 Oracle을 사용하므로 PHP를 Oracle 데이터베이스에 연결해야 합니다. 이번 글에서는 PDO를 통해 오라클 데이터베이스에 접속하는 방법을 소개하겠습니다. 자세한 소개는 생략하겠습니다.
개발 환경
먼저 제가 사용하는 환경을 설명해주세요:
RedHat (CentOS) 6.7
PHP5.6
오라클 11g
php5. 6의 구성은 여기를 참조하세요.
Linux 환경의 Oracle 설치는 여기를 참조하세요.
물론 전체 Oracle을 설치할 수는 없지만 설치하려면 인스턴트 클라이언트만 설치하면 됩니다. 인스턴트 클라이언트의 Oracle 연결 단계는 이 블로그 게시물 끝에 있는 승인 섹션을 참조하세요.
다음 단계를 시작하기 전에 위의 세 가지 환경이 올바르게 구성되어 있고 사용 가능한지 확인하세요.
PDO_OCI 설치
php5.6.31 버전을 설치했다면 pdo_oci 모듈이 이미 함께 제공되는 것 같지만 안전을 위해 다시 설치해 보겠습니다.
다운로드 및 압축 해제
$ wget https://pecl.php.net/get/PDO_OCI-1.0.tgz $ tar -xvf PDO_OCI-1.0.tgz $ cd PDO_OCI-1.0
구성 파일을 수정하세요
Oracle11g에 맞게 디렉터리의 config.m4 파일을 업데이트하세요
# 在第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) ;;
컴파일된
현재 디렉터리에서 실행
$ phpize
phpize는 gcc 명령과 유사하며 주로 PHP 플러그인 모듈을 생성하는 데 사용됩니다. phpize는 php-deval 모듈에 따라 다릅니다. 명령을 실행할 수 없는 경우 yum을 사용하여 php-deval을 직접 설치하세요.
다음 명령을 실행하여 설치되었는지 확인할 수 있습니다.
$ rpm -qa | grep php
php56w-deval-5.6.xxx인지 여부, 그렇지 않은 경우 yum install php56w-deval을 설치하십시오.
Installation
phpize 명령이 실행되면 Linux에서 소스 코드를 통해 애플리케이션을 설치하기 위한 구성 및 기타 공통 표준 파일을 포함하여 많은 파일이 디렉터리에 생성됩니다. 다음 명령을 순서대로 실행합니다.
$ ./configure $ make && make install
일반적으로 여기서 문제가 발생합니다. 만들 때 pdo_oci.c 파일에서 메시지가 표시됩니다.
pdo_oci.c:34: error: expected ‘=', ‘,', ‘;', ‘asm' or ‘attribute' before ‘pdo_oci_functions'
해결 방법은 pdo_oci.c 파일의 34번째 줄을 수정하고 변경하는 것입니다. function_entry에서 zend_function_entry로 저장하고 다시 만드세요.
ini 파일 만들기
성공한 후 pdo_oci.so 모듈이 /usr/lib64/php/modules 디렉토리에 생성되었다는 메시지가 표시됩니다. 우리가 해야 할 일은 PHP에 알리는 것뿐입니다. 이 모듈을 참조하고 싶습니다.
/etc/php.d 디렉토리에 새 ini 파일을 만듭니다: pdo_oci.ini, 내용:
extension=pdo_oci.so
이 시점에서 pdo_oci 모듈이 설치되어 있습니다. php -m | 오시 .
OCI8 설치
다음 단계는 oci8 모듈을 설치하는 것입니다.
다운로드 및 압축 해제
명령줄에서 다음 명령을 순서대로 실행하세요.
$ wget https://pecl.php.net/get/oci8-2.0.8.tgz $ tar -xvf oci8-2.0.8.tgz $ cd oci8-2.0.8
컴파일 및 설치
단계는 pdo와 유사합니다. 위의 _oci:
$ phpize $ ./configure --with-oci8=shared $ make && make install
ini 파일 만들기
마찬가지로 /etc/php.d 디렉터리에 oci8.ini를 만듭니다. 내용:
extension=oci8.so
Apache 다시 시작
안녕 PHP 모듈을 다시 로드하기 위해 아파치 서버를 다시 시작하는 것을 잊었습니다:
$ service httpd restart
웹사이트 디렉토리에 test.php 파일을 생성할 수 있습니다:
<?php phpinfo();
그런 다음 페이지로 이동합니다. 출력된 phpinfo 정보를 확인하고, pdo, pdo_oci, oci8 모듈의 관련 정보를 확인하세요.
요약
참조 및 승인
oracle 및 pdo_oci 모듈 설치에 연결된 php5.3 클라이언트
CentOS 6.4 64비트에 PDO_OCI 및 OCI8 PHP 확장 설치
위 내용은 PHP가 PDO를 사용하여 Oracle 데이터베이스에 액세스하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!