사용자 도구

사이트 도구


develop:php:oracle_module

Setting the PHP with Oracle Module on Ubuntu 16.04

ubuntu package install

  1. apache2
    # apt-get install apache2 
  2. php
    # apt-get install php 
  3. php module
    # apt-get install php-mysql php-xmlrpc php-xml php-curl php-gd php-pear
  4. apache2 php7.0 module
    # apt-get install libapache2-mod-php7.0 
  5. php dev
    # apt-get install php7.0-dev 
  6. build essential
    # apt-get install build-essential libaio1 

한방에 설치

 # apt-get install apache2 php php-mysql php-xmlrpc php-xml php-curl php-gd php-pear libapache2-mod-php7.0 php7.0-dev build-essential libaio1 unzip 

apache2 설정

  1. apache2 모듈 중에서 rewrite 와 headers 를 활성화시킨다.
    # a2enmod rewrite headers 

oracle instantclient 설치 및 설정

oracle instant 다운로드

oracle instant 설정

  1. 압축해제
    # unzip instantclient-basic-linux.x64-11.2.0.4.0.zip 
    # unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip 
  2. 압축해제 폴더이동
    # mv instantclient_11_2/ /usr/local/ 
  3. 디렉토리 이동
    # cd /usr/local/instantclient_11_2/ 
  4. 심볼릭링크 생성
    # ln -s /usr/local/instantclient_11_2/libclntsh.so.11.1 /usr/local/instantclient_11_2/libclntsh.so
    # ln -s /usr/local/instantclient_11_2/libocci.so.11.1 /usr/local/instantclient_11_2/libocci.so
  5. LD 설정파일 생성
    # echo /usr/local/instantclient_11_2 > /etc/ld.so.conf.d/oracle-instantclient 
  6. LD 설정적용
     # ldconfig 
  7. 필요에 따라서 BASH 파일에 설정한다
    $ vi ~/.bashrc
    ...
    export DYLD_LIBRARY_PATH="/usr/local/instantclient_11_2"
    export TNS_ADMIN="/usr/local/instantclient_11_2"
    export ORACLE_HOME="/usr/local/instantclient_11_2"
    ...

OCI8 설치 및 설정

  1. https://pecl.php.net/package/oci8 에서 최신버젼을 다운로드 받는다.
    # wget https://pecl.php.net/get/oci8-2.1.8.tgz
  2. 압축을 해제한다.
    $ tar xvfz oci8-2.1.8.tgz
  3. 소스경로로 이동한다.
    $ cd oci8-2.1.8/
  4. PHP 확장모듈을 위한 빌드환경을 만들기 위해 phpize 를 실행한다.
    $ phpize
  5. libclntsh.so 경로를 확인한다.
    $ ls /usr/local/instantclient_11_2/libclntsh.so
    /usr/local/instantclient_11_2/libclntsh.so
  6. 환경설정을 맞춰서 컴파일을 한다.
    $ ./configure --with-oci8=instantclient,/usr/local/instantclient_11_2
  7. make 와 make test 를 실행한다.
    # make
    # make test
  8. make install 를 실행한다.
    root가 아닐 경우 퍼미션 에러가 날 수 있다, 이때에는 sudo 를 같이 써준다.
    # make install  # root 일때
    또는 
    $ sudo make install  # sudo 권한을 가진 user 일때
  9. oci8.so 파일을 확인한다
    # ls /usr/local/instantclient_11_2/oci8.so
    /usr/local/oracle/instantclient_11_2/oci8.so
    # ls /usr/lib/php/20151012/oci8.so 
    /usr/lib/php/20151012/oci8.so
  10. /etc/php/7.0/apache2/php.ini 파일에 oci8.so 를 등록한다
    # vi /etc/php/7.0/apache2/php.ini
    ...
    extension=oci8.so
    ...
  11. apache2 를 재시작한다.
     # /etc/init.d/apache2 restart 
  12. oci8.so 모듈을 확인해 본다. (이 방법은 확인이 안될때도 있다)
    # php -m | grep oci8
    oci8
  13. phpinfo(); 를 이용하여 웹에서 확인을 할 수도 있다.
develop/php/oracle_module.txt · 마지막으로 수정됨: 2018/04/10 00:56 저자 starlits