Oracle OCI8 설치 테스트

OCI8 테스트 스위트는 ext/oci8/tests에 있습니다. OCI8 테스트가 실행된 후 이 디렉토리에는 오류 로그도 포함됩니다.

PHP 테스트를 실행하기 전에 details.inc를 편집하고 $user, $password 및 $dbase 연결 문자열을 설정하십시오. OCI8 테스트 스위트는 SYSTEM 계정을 사용하여 개발되었습니다. 테스트 사용자에게 동등한 권한이 없으면 일부 테스트는 실패합니다.

Oracle Database 상주 연결 풀링이 테스트 중인 경우 $test_drcp를 true로 설정하고 연결 문자열이 적절한 DRCP 풀링된 서버를 사용하는지 확인하십시오.

details.inc 편집의 대안은 설정 환경 변수입니다. 예를 들면 다음과 같습니다.

$ export PHP_OCI8_TEST_USER=system
$ export PHP_OCI8_TEST_PASS=oracle
$ export PHP_OCI8_TEST_DB=localhost/XE
$ export PHP_OCI8_TEST_DRCP=FALSE
                

일부 셸에서는 이러한 변수가 PHP 프로세스에 올바르게 전파되지 않으며 이 메서드를 사용하면 테스트 연결에 실패합니다.

그런 다음 Oracle 데이터베이스에 필요한 환경을 설정합니다. Oracle Database와 동일한 시스템에서 PHP를 실행하는 경우 다음을 실행할 수 있습니다.

$ . /usr/local/bin/oraenv
                

Oracle 11gR2 XE로 다음을 수행하십시오.

$ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
                

일부 셸에서는 php.ini가 variables_order 매개변수에 E를 포함해야 합니다. 예를 들면 다음과 같습니다.

variables_order = "EGPCS"
                

다음을 사용하여 모든 PHP 테스트를 실행합니다.

$ cd your_php_src_directory
$ make test
                

또는 다음을 사용하여 OCI8 테스트만 실행

$ cd your_php_src_directory
$ make test TESTS=ext/oci8
                

테스트가 완료되면 테스트 실패를 검토합니다. 느린 시스템에서 일부 테스트는 run-tests.php의 기본 테스트 시간 초과보다 오래 걸릴 수 있습니다. 이를 수정하려면 환경 변수 TEST_TIMEOUT을 더 큰 초로 설정하십시오.

경부하용으로 구성된 로컬 데이터베이스가 있는 빠른 시스템(예: Oracle 11gR2 XE)에서 일부 테스트는 ORA-12516 또는 ORA-12520 오류와 함께 실패할 수 있습니다. 이를 방지하려면 다음 단계를 사용하여 데이터베이스 PROCESSES 매개변수를 늘리십시오.

Oracle 소프트웨어 소유자로 연결합니다.

$ su - oracle
                

위에서 설명한 대로 oracle_env.sh 또는 oraenv를 사용하여 필요한 Oracle 환경을 설정합니다.

SQL*Plus 명령줄 도구를 시작하고 PROCESSES를 늘립니다.

$ sqlplus / as sysdba
SQL> alter system set processes=100 scope=spfile
                

데이터베이스를 다시 시작합니다.

SQL> startup force