60.Unix2008. 12. 17. 12:16
반응형

윈디하나의 솔라나라: Oracle

최종 갱신일: 2008-06-23, 이 문서는 윈디하나의 솔라나라, http://www.solanara.net/에서 최근에 갱신된 문서를 찾을 수 있다.

개요

  • Oracle 10g Release 2, Solaris 10 u5 x86 을 기준으로 오라클 설치에 대한 설명이다.

1. 설치 전에

  • Oracle은 모두 /export/home/oracle에 설치할 것이다. 필자는 /export/home/oracle을 4GB 주었다.
  • 오라클사에서 말하는 오라클 인스톨을 위한 필수 패키지는 SUNWarc SUNWlibms SUNWi1of SUNWbtool SUNWsprot SUNWi1cs SUNWhea SUNWsprox SUNWi15cs SUNWlibm SUNWtoo SUNWxwfnt 이다. 전체 설치시 모두 설치되어있다. 또한 최신의 커널 패치를 적용해야 한다. 물론 솔라리스 10 u5에서는 이미 설치되어있다.
  • 오라클에서 권장하는 사양은 512MB이상의 램, 1GB이상의 스왑공간, /tmp이 400MB이상 남아있어야 한다. 임시공간이 문제될 것이라 생각되면 TEMP환경변수와 TMPDIR 환경변수를 수정해준다. 예) export TEMP=/disk2/tmp
  1. 솔라리스 10 미만의 시스템인 경우, 시스템 커널 파라메터 변경해야 한다. (솔라리스 10에서는 할 필요 없다) 주로 System V IPC와 관련된 파라미터를 늘려주어야 한다. 자세한 사항은 솔라리스 매뉴얼의 Tunable Parameter부분을 참고한다. /etc/system 파일은 매우 중요하므로 백업받은 후 수정하자.
    root@wl ~ # cp /etc/system /etc/systemold
    root@wl ~ # vi /etc/system
    set noexec_user_stack=1
    set semsys:seminfo_semmni=100
    set semsys:seminfo_semmns=1024
    set semsys:seminfo_semmsl=256
    set semsys:seminfo_semvmx=32767
    set shmsys:shminfo_shmmax=4294967295
    set shmsys:shminfo_shmmin=1
    set shmsys:shminfo_shmmni=100
    set shmsys:shminfo_shmseg=10
    root@wl ~ # sync; sync; reboot
    
  2. 오라클 계정을 생성한다. 오라클은 root로 설치할 수 없다. 오라클에서는 설치를 위해 oinstall 그룹, dba 그룹, oracle 유저를 생성하는 것을 권하고 있다.
    root@wl ~ # groupadd -g 101 oinstall
    root@wl ~ # groupadd -g 102 dba
    root@wl ~ # useradd -d /export/home/oracle -g oinstall -G dba -m -u 103 -s /bin/bash oracle
    root@wl ~ # passwd oracle
    
  3. 오라클 계정의 환경을 설정한다. ORACLE_HOME과 같은 중요한 환경 변수를 설정한다.
    root@wl ~ # /usr/openwin/bin/xhost + 2)
    access control disabled, clients can connect from any host
    root@wl ~ # su - oracle
    oracle@wl ~ $ mkdir oradata 4)
    oracle@wl ~ $ mkdir flash_recovery_area 4)
    oracle@wl ~ $ vi .profile 5)
    DISPLAY=localhost:0.0; export DISPLAY # 다른 호스트의 X윈도우를 사용하려면 해당 호스트의 IP를 localhost대신 적는다.
    ORACLE_BASE=/export/home/oracle; export ORACLE_BASE
    if [ -x /usr/local/bin/dbhome ] # 오라클 설치시 root.sh를 실행하면 dbhome이 존재하며 실행 가능하게 된다.
    then
    	. /usr/local/bin/oraenv
      ORACLE_HOME=`dbhome orcl`; export ORACLE_HOME
      PATH=$PATH:$ORACLE_HOME/bin; export PATH
      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
    fi
    # TNS_ADMIN 환경변수는 설정하지 않는다.
    oracle@wl ~ $ . .profile
    oracle@wl ~ $ cksum 10202_database_solx86.zip
    1350902623      681090961       10202_database_solx86.zip
    oracle@wl ~ $ unzip 10202_database_solx86.zip 1)
    oracle@wl ~ $ cd database
    oracle@wl ~/database $ ./runInstaller
    Oracle Universal Installer 시작 중...
    
    설치 프로그램 요구 사항 확인 중...
    
    운영 체제 버전 확인 중: 필수 버전5.10.    실제 5.10
                                          성공함
    
    임시 공간 확인 중: 250MB 이상이어야 합니다..   실제 1020MB    성공함
    스왑 공간 확인 중: 500MB 이상이어야 합니다..   실제 1339MB    성공함
    모니터 확인 중: 최소 256 색상을 표시하도록 구성되어 있어야 합니다..    실제 16777216    성공함
    
    설치 프로그램 요구 사항을 모두 충족했습니다.
    
    다음에서 Oracle Universal Installer의 시작을 준비하는 중 /tmp/OraInstall2008-06-19_04-40-02PM. 기다리십시오.
    oracle@wl ~/database $ 
    
1) 오라클 다운로드 사이트: 가기
2) [xhost +]는 X윈도우의 디스플레이의 접근 권한 제어를 끄는 명령어이다. 오라클 설치가 끝나면 [xhost -]로 다시 켜 놓는다. 당연한 말이지만 X윈도우에 미리 로그인 되어있어야 한다. [/usr/openwin/bin/xhost: unable to open display ""] 메시지가 나오면 DISPLAY 환경변수를 설정5) 해본다.
3) 오라클 어플리케이션이 설치될 곳. 2.5GB정도 필요
4) 오라클 데이터가 설치될 곳. 1.2GB이상 필요
5) 환경 변수를 설정해준다.

2. 오라클 및 오라클 컴패니언 설치

위와같이 한후 마지막에 runInstaller를 실행했다면 GUI화면이 뜰 것이다. 자바로 되어있어 썩 모양이 좋지는 않지만 그럭저럭 봐줄만 한다. 각각의 화면마다 선택해야할 것은 다음과 같다. 빠른 설치를 위해 설정은 대부분 기본값으로 해 놓았다. (필요한 설정은 이전에 .profile을 수정할 때 모두 했다) 또한 이 내용은 Oracle Quick Installation Guide의 내용이기도 하다.
스크린 제목 내용
Welcome Next를 클릭한다.
Specify Inventory Directory and Credentials 오라클 인벤토리설정 화면이다. 기본값으로 놔둔다. Next를 클릭하면 루트 권한으로 orainstRoot.sh를 실행하라고 나오는데 화면을 참조해 실행해준다.
Specify File Locations 파일이 설치될 디렉토리이다. $ORACLE_BASE/product/10.1.0/db_1에 설치된다. Next를 클릭한다.
Select Installation Type Enterprise Edition을 선택하고 Next를 클릭한다.
Select Database Configuration Next를 클릭한다.
Specify Database Configuration Options Global Database Name이 orcl로 되어있는 것을 확인한다. Database Character Set은 KO16KSC5601(완성형)으로 선택되어있는데, 필요하다면 KO16MSWIN949 (확장완성형)로 수정한다. 예제 스키마를 생성할 것인가를 물어보는데 체크하는 것이 테스트용으로 설치하는 목적에 부합할 것이다. Next를 클릭한다.
Select Database Management Option Next를 클릭한다.
Specify Database File Storage Option 위에서 생성한 디렉토리를 선택해준다. 기본값은 $ORACLE_BASE/oradata 이다.
Specify Backup and Recovery Options Next를 클릭한다.
Specify Database Schema Passwords 각각의 계정에 대해 암호를 입력한 후 Next를 클릭한다.
Summary 이제까지 설정한 것을 보여준다. 확인 후 Next를 클릭한다.
Install 인스톨 화면이다. 기다리면 다음 화면으로 자동으로 넘어간다.
Configuration Assistants 설정 화면이다. 데이터 베이스 생성이 끝나면 안내 메시지가 나오는데, 전역데이터베이스이름, SID식별자, http://localhost:5500/em 과 SYS,SYSTEM암호는 반드시 외워놓는다. OK를 클릭한 후 Next를 클릭하면 다음 화면으로 넘어간다.
Setup Privileges 루트 유저로 $ORACLE_HOME/root.sh 을 실행하라는 메시지가 나온다. 루트로 실행해준다. 나오는 메시지 중에서 필요한 것은 다음과 같다.
ORACLE_OWNER= oracle
ORACLE_HOME=/export/home/oracle/oraapp/product/10.1.0/Db_1
End of Installation 주어진 내용을 읽어본 후 Exit를 클릭해 인스톨러를 마친다. (포트 리스트는 $ORACLE_HOME/install/portlist.ini 에 있다.) 이것으로 인스톨을 모두 끝냈다.
Ultra Search URL: http://localhost:5620/ultrasearch
Ultra Search Administration Tool URL: http://localhost:5620/ultrasearch/admin
iSQL*Plus URL: http://localhost:5560/isqlplus
iSQL*Plus DBA URL: http://localhost:5560/isqlplus/dba
Enteprise Manager 10g Database Control URL: http://localhost:5500/em
여기까지 하면 오라클의 설치가 끝난것이다. 여기까지만 설치하더라도 오라클의 운영에는 문제 없지만, 좀 더 편한 관리를 위해 컴패니언을 설치한다. (필자는 오라클은 컴패니언까지 인스톨해야 한다고 보고 있다)
oracle@wl ~ $ cksum solarisx86_CCD_10_1_0_3_Disk1.cpio.gz
4119132538      438221549       solarisx86_CCD_10_1_0_3_Disk1.cpio.gz
oracle@wl ~ $ rm -rf Disk1 # 기존에 압축 풀었던 오라클 데이터베이스 인스톨 파일을 지운다
oracle@wl ~ $ gunzip solarisx86_CCD_10_1_0_3_Disk1.cpio.gz
oracle@wl ~ $ cpio -idcmv < solarisx86_CCD_10_1_0_3_Disk1.cpio
oracle@wl ~/Disk1 $ ./runInstaller

3. 오라클 패치

오라클 패치는 오라클을 구매했을때 주는 CID를 이용해 메타링크(http://metalink.oracle.com) 에 가입한 후 받을 수 있다. 직접 패치하는것도 좋지만, 오라클 전문가의 도움을 받는것도 좋을 것이다.
다음은 패치# 2617419(OPatch 1.0.0.0.55), 4751926 (CPUJan2006)를 설치하는 예를 보인 것이다.
oracle@saturn4 ~ $ echo $ORACLE_HOME
/export/home/oracle/oraapp/OraHome_1
oracle@saturn4 ~ $ echo $PATH
/usr/local/bin:/usr/sfw/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/ccs/bin:/export/home/oracle/oraapp/OraHome_1/bin
oracle@saturn4 ~ $ echo $LD_LIBRARY_PATH
/usr/local/xml/lib:/usr/lib:/usr/local/lib:/usr/ucblib:/usr/ccs/lib:/usr/sfw/lib:/export/home/oracle/oraapp/OraHome_1/lib
oracle@saturn4 ~ $ unzip p2617419_10102_GENERIC.zip 
... # OPatch 디렉토리 생성됨
oracle@saturn4 ~ $ cp -r OPatch/ ./oraapp/OraHome_1/ 
oracle@saturn4 ~ $ unzip p4751926_10103_SOLARISx86.zip 
... # README.html, 4751926 디렉토리 생성됨. README.html은 읽어볼것.
oracle@saturn4 ~ $ cd 4751926
oracle@saturn4 ~/4751926 $ /export/home/oracle/oraapp/OraHome_1/OPatch/opatch apply

Oracle Interim Patch Installer version 1.0.0.0.55
Copyright (c) 2006 Oracle Corporation. All Rights Reserved..

We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com

Oracle Home = /export/home/oracle/oraapp/OraHome_1
Location of Oracle Universal Installer components = /export/home/oracle/oraapp/OraHome_1/oui
Location of OraInstaller.jar  = "/export/home/oracle/oraapp/OraHome_1/oui/jlib"
Oracle Universal Installer shared library = /export/home/oracle/oraapp/OraHome_1/oui/lib/intelsolaris/liboraInstaller.so
Location of Oracle Inventory Pointer = /var/opt/oracle/oraInst.loc
Location of Oracle Inventory = /export/home/oracle/oraapp/OraHome_1/inventory
Path to Java = /export/home/oracle/oraapp/OraHome_1/jre/1.4.2/bin/java
Log file = /export/home/oracle/oraapp/OraHome_1/.patch_storage//*.log

Creating log file "/export/home/oracle/oraapp/OraHome_1/.patch_storage/4751926/Apply_4751926_03-21-2006_11-49-00.log"

Invoking fuser to check for active processes.

Invoking fuser on "/export/home/oracle/oraapp/OraHome_1/bin/oracle"
Invoking fuser on "/export/home/oracle/oraapp/OraHome_1/bin/lsnrctl"
Invoking fuser on "/export/home/oracle/oraapp/OraHome_1/bin/tnslsnr"
Backing up comps.xml ...

OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.


Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /export/home/oracle/oraapp/OraHome_1)
Is this system ready for updating?
Please respond Y|N > 
Y 1)
Executing the Apply pre-patch script (/export/home/oracle/4751926/custom/scripts/pre)...
Applying patch 4751926...

Patching archive files...

Patching jar files...

Patching copy files...

Creating new directory "/export/home/oracle/oraapp/OraHome_1/cpu/CPUJan2006/MODPLSQL/owa_all/90"
Creating new directory "/export/home/oracle/oraapp/OraHome_1/olap/admin"
Creating new directory "/export/home/oracle/oraapp/OraHome_1/cpu/CPUJan2006/MODPLSQL/owa_all/30"
Creating file to hold list of directories that were mkdir'ed: "/export/home/oracle/oraapp/OraHome_1/.patch_storage/4751926/opatch_dirs_created.lst"
Running make for target client_sharedlib.

Running make for target ioracle.

Running make for target iexp.

Running make for target iimp.

Running make for target iexpdp.

Running make for target iimpdp.

Running make for target libnmuc.

Running make for target libnmemso.

Running make for target ilsnrctl.

Running make for target itnslsnr.

Running make for target ictxload.



Inventory is good and does not have any dangling patches.


Updating inventory...

Verifying patch...
  Verifying that patch ID is in Oracle Home inventory.

  Verifying copy files.

  Verifying jar files.

  Verifying archive files.

OPATCH_VERIFY_OK: Patch has been applied.

Backing up comps.xml ...

********************************************************************************
********************************************************************************
**                                ATTENTION                                   **
**                                                                            **
** Please note that the Security Patch Installation (Patch Deinstallation) is **
** not complete until all the Post Installation (Post Deinstallation)         **
** instructions noted in the Readme accompanying this patch, have been        **
** successfully completed.                                                    **
**                                                                            **
********************************************************************************
********************************************************************************
Executing the Apply post-patch script (/export/home/oracle/4751926/custom/scripts/post)...

OPatch succeeded.
oracle@saturn4 ~/4751926 $ cd $ORACLE_HOME/cpu/CPUJan2006
oracle@saturn4 ~/oraapp/OraHome_1/cpu/CPUJan2006 $ sqlplus /nolog
SQL> connect / as sysdba
SQL> STARTUP
SQL> @catcpu.sql 2)
SQL> QUIT
oracle@saturn4 ~/oraapp/OraHome_1/cpu/CPUJan2006 $ cd $ORACLE_HOME/rdbms/admin
oracle@saturn4 ~/oraapp/OraHome_1/rdbms/admin $ sqlplus /nolog
SQL> connect / as sysdba
SQL> STARTUP
SQL> @utlrp.sql 3)
SQL> select OBJECT_NAME from DBA_OBJECTS where status = 'INVALID'; 4)

no rows selected

SQL> QUIT
oracle@saturn4 ~/oraapp/OraHome_1/rdbms/admin $ 
1) 오라클관련 인스턴스가 모두 종료되었는지 물어보는 프롬프트. 준비되었으면 Y를 입력하고 엔터를 친다.
2) 오랫동안 걸리는 패치가 끝났다. 패치 이후 스크립트를 실행시킨다.
3) 만약 있을지도 모르는 INVALID 객체를 제거하기 위해 실행한다.
4) no rows selected 가 나오면 정상이다.

4. 오라클 인스턴트 클라이언트 설치

Oracle Instant Client는 오라클 10g에서 새롭게 선 보이는 배포버전이다. 오라클 OCI 라이브러리와 SDK, SQL*Plus, JDBC드라이버만을 지원해준다.
파일이름                                                 크기(바이트)   CRC32
instantclient-basic-solarisx86-10.1.0.3-20050404.zip     30,141,480     4208528557
instantclient-jdbc-solarisx86-10.1.0.3-20050404.zip       4,572,527      556902813
instantclient-sqlplus-solarisx86-10.1.0.3-20050404.zip      266,435      793421160
instantclient-sdk-solarisx86-10.1.0.3-20050404.zip          293,993     1919831458
root@wl ~ # unzip instantclient-basic-solarisx86-10.1.0.3-20050404.zip
root@wl ~ # unzip instantclient-sqlplus-solarisx86-10.1.0.3-20050404.zip
root@wl ~ # unzip instantclient-sdk-solarisx86-10.1.0.3-20050404.zip
root@wl ~ # unzip instantclient-jdbc-solarisx86-10.1.0.3-20050404.zip
root@wl ~ # mv instantclient10_1 /usr/local/instantclient10_1
root@wl ~ # vi /usr/local/instantclient10_1/tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
root@wl ~ # vi /etc/profile
# for Oracle Instant Client
if [ -d /usr/local/instantclient10_1 ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/instantclient10_1; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/instantclient10_1; export PATH;
  NLS_LANG=Korean_Korea.KO16KSC5601; export NLS_LANG;
  TNS_ADMIN=/usr/local/instantclient10_1; export TNS_ADMIN;
  SQLPATH=/usr/local/instantclient10_1; export SQLPATH;
fi
root@wl ~ # sqlplus 사용자아이디/사용자패스워드@//호스트주소:포트/DB이름
* 오라클 인스턴트 클라이언트는 라이브러리 파일 크기가 크기 때문에, 가상 메모리를 많이 소모한다.

5. 오라클 관련 어플리케이션 설정

  1. 모든 오라클 관련 어플리케이션은 ORACLE_HOME 환경변수가 있어야 동작한다. 따라서 톰캣이나 아파치/PHP을 사용할 때에도 웹서버를 띄우기 전에 ORACLE_HOME이 환경변수에 존재하는지 확인해야 한다.
  2. 한글문제 해결의 기본은 NLS_LANG 환경 변수를 지정해주는 것이다. NLS_LANG=Korean_Korea.KO16KSC5601 또는 NLS_LANG=American_America.KO16MSWIN949 의 조합으로도 사용할 수 있다. 오라클 데이터베이스에 접속하기 전에 NLS_LANG 환경 변수가 존재하며, 올바르게 설정되었는지 반드시 확인해야 한다.
  3. 오라클 시작/종료
    # 오라클 데이터베이스 시작.
    oracle@wl ~ $ sqlplus /nolog # 'dbstart' 스크립트를 이용할 수도 있다.
    SQL> connect sys/패스워드 as sysdba
    SQL> startup
    SQL> exit
    oracle@wl ~ $ lsnrctl start # 리스너 시작 (외부에서 접속하기 위해서는 필요하다)
    oracle@wl ~ $ searchctl start # Ultra Search 시작
    oracle@wl ~ $ isqlplusctl start # iSQL*Plus 시작
    oracle@wl ~ $ emctl start dbconsole # OEM(Oracle Enterprise Manager) 시작
    
    # 인스톨 이후. 오라클을 시작한 상태에서 실행한다.
    # PL/SQL 모듈 재 컴파일
    oracle@wl ~ $ sqlplus "/ AS SYSDBA"
    SQL> @?/rdbms/admin/utlrp.sql
    # 스태틱 라이브러리 생성
    oracle@wl ~ $ $ORACLE_HOME/bin/genclntst
    
    # 종료
    oracle@wl ~ $ emctl stop dbconsole
    oracle@wl ~ $ isqlplusctl stop
    oracle@wl ~ $ searchctl stop
    oracle@wl ~ $ lsnrctl stop
    oracle@wl ~ $ sqlplus /nolog # 'dbshut' 스크립트를 이용할 수도 있다.
    SQL> connect sys/패스워드 as sysdba
    SQL> shutdown immediate
    SQL> exit
    oracle@wl ~ $
    
  4. Java와 Oracle연동
    * 자바용 오라클 JDBC드라이버는 크게 두가지가 있다. 하나는 THIN을 지원해주는 드라이버고 다른 하나는 OCI기반의 드라이버이다. THIN드라이버의 경우 오라클 라이브러리를 설치할 필요 없다는 장점이있다. (성능은 비슷한것으로 판단된다) 아래는 THIN드라이버를 기준으로 한다.
    * Java 1.4인 경우 $ORACLE_HOME/jdbc/lib/ojdbc14.jar 과 $ORACLE_HOME/jdbc/lib/orai18n.jar 를 CLASS_PATH 에 환경변수 넣어준다.
    * Java 1.2, Java 1.3인 경우 $ORACLE_HOME/jdbc/lib/classes12.jar 과 $ORACLE_HOME/jdbc/lib/nls_charset12.jar 를 환경변수 CLASS_PATH에 넣어준다.
  5. PHP 와 Orale연동
    * PHP컴파일시 ./configure부분을 다음으로 대체한다. 반드시 설치하기 전에 오라클에 설치되어있어야 하며 컴파일 할때 환경 변수 ORACLE_HOME 이 설정되어있어야 한다.
    root@wl ~/php-5.0.4 # . ~oracle/.profile
    root@wl ~/php-5.0.4 # ./configure \
     --prefix=/usr/local/php \
     --with-apxs2=/usr/local/apache2/bin/apxs \
     --with-mysql=/usr/local/mysql \
     --with-mysqli=/usr/local/mysql/bin/mysql_config \
     --with-oci8 \
     --enable-sigchild \
     --with-iconv \
     --with-libxml-dir=/usr/local/xml \
     --enable-modules=so \
     --enable-mbstring \
     --enable-mbregex \
     --with-gd \
     --enable-gd-native-ttf \
     --with-jpeg-dir=/usr/sfw \
     --with-png-dir=/usr/sfw \
     --with-zlib-dir=/usr/local
    root@wl ~/php-5.0.4 # make
    root@wl ~/php-5.0.4 # make install
    
    * PHP 4.3.11, PHP 5.0.4부터 오라클 인스턴트 클라이언트(Oracle Instant Client)를 공식 지원한다. 아래는 PHP 5.2.x에서의 인스턴트 클라이언트를 이용한 방법이다. 4.3.x, 5.0.x에서는 설정 방법이 약간 다르다.
    root@wl ~/php-5.2.3 # ./configure \
     --prefix=/usr/local/php \
     --with-apxs2=/usr/local/apache2/bin/apxs \
     --with-mysql=/usr/local/mysql \
     --with-mysqli=/usr/local/mysql/bin/mysql_config \
     --with-oci8=instantclient,/usr/local/instantclient10_1 \
     --enable-sigchild \
     --with-iconv \
     --with-libxml-dir=/usr/local/xml \
     --enable-modules=so \
     --enable-mbstring \
     --enable-mbregex \
     --with-gd \
     --enable-gd-native-ttf \
     --with-jpeg-dir=/usr/sfw \
     --with-png-dir=/usr/sfw \
     --with-zlib-dir=/usr/local
    root@wl ~/php-5.2.3 # make
    root@wl ~/php-5.2.3 # make install
    
    * 필자가 확인한 결과 PHP 5.0.x에서는 오라클의 커넥션이 끊어지지 않는 현상이 있다. 꼭 솔라리스에 국한된 문제는 아니며, OCI라이브러리를 사용하던 인스턴트 클라이언트를 사용하던 결과는 같다. 상용 서비스에서 오라클이 필요하다면 PHP 4.4.x를 사용하도록 한다. 설치방법은 PHP 5.0.x와 같다. 꼭 PHP 5를 사용해야 한다면, PHP 4.4.0의 OCI익스텐션 소스를 PHP 5.0.x소스에 덮어써 해결할 수 있다고 한다. PHP버그ID 32361 번 (http://bugs.php.net/bug.php?id=32361)에서 확인할 수 있다. 이는 PHP 5.1.2에서 해결되었다.
Posted by 1010