使用PHP5 通過unixODBC/easysoft oracle odbc driver 連接 ORACLE

環境說明:RedHat Linux EL4
          apache 2.0.55
          php 5.1.2
         
          unixODBC 2.2.9
          easysoft oracle driver: odbc-oracle-3.0.0-linux-x86-glibc
          ORACLE 10gr2

    通過PHP連接oracle 數據庫,筆者選擇了 easysoft的odbc driver作爲中間件,據說比oracle 自身的優秀,本文只說安裝,沒有任何對比,僅供參考

    1、apache 2.0.55安裝:此處編譯安裝到/www 目錄,其他略
    2、unixODBC 安裝
        由於PHP 編譯需要unixODBC 的頭文件,所以需要安裝unixODBC devel和unixODBC庫
        從RHEL4光盤的第3和第4張分別查找到 unixODBC-devel-2.2.9-1.i386.rpm 和 unixODBC-2.2.9-1.i386.rpm
        執行:
            rpm -ivh unixODBC-2.2.9-1.i386.rpm
            rpm -ivh unixODBC-devel-2.2.9-1.i386.rpm
            (建議執行前通過 rpm -qa|grep unixODBC 查找一下,是否已經安裝)

    3、php 5.1.2 安裝
        下載 php-5.1.2.tar.gz 依次執行:
            tar zxvf php-5.1.2.tar.gz
            cd php-5.1.2
            ./configure --prefix=/www/php --with-apxs2=/www/bin/apxs --with-zlib --with-mysql=/usr/lib/mysql --enable-soap --enable-sockets --with-gd         --with-libxml --with-unixODBC=/usr --with-dom=/usr --with-dom-xslt=/usr --with-dom-exslt=/usr --with-xmlrpc=shared
               (根據需要添加,重點在 --with-unixODBC=share,/usr)
            make
            make install
   
    4、easysoft oracle driver 安裝
        從www.easysoft.com 下載 driver 安裝包:odbc-oracle-3.0.0-linux-x86-glibc.tar
        依次執行:
            tar xvf odbc-oracle-3.0.0-linux-x86-glibc.tar
            cd odbc-oracle-3.0.0-linux-x86-glibc
            ./install  (默認安裝到:/usr/local/easysoft)
        按提示執行,基本上都是Yes,當提示是否使用其自身攜帶的unixODBC時,可選否,使用系統已經安裝的。
        由於此driver 涉及到License問題,可以根據提示獲取一個license
        此時在  /usr/local/easysoft/license/ 產生名爲 license.out的文件,執行:
            mv license.out license
        如不產生License則無法運行

    5、修改/etc/odbc.ini 以下爲示例
 [Data Sources]
 ips = Oracle ODBC Driver DSN

 [default]
 Driver = /usr/local/easysoft/oracle/libesoracle.so

 [test]
 Driver = /usr/local/easysoft/oracle/libesoracle.so

 Description = Oracle
 server = 10.3.7.7
 ServerType = Oracle
 Port = 1521
 User = hunter
 Password = hunterpass
 Database = ORCL.CCPUIPS.COM
 SID = orcl.ccpuips.com
 METADATA_ID = 0
 ENABLE_USER_CATALOG = 1
 ENABLE_SYNONYMS = 1

 [default]
 Driver = /usr/local/easysoft/oracle/libesoracle.so

    6、修改/etc/odbcinst.ini
 [test]
 Descriptions = ODBC for Oracle
 Driver = /usr/local/easysoft/oracle/libesoracle.so
  
    7、修改$ORACLE_HOME/netword/admin/tnsnames.ora (根據需要安裝Oracle客戶端),如下爲示例:
 ORCL =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = HunterZhao.com)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = orcl.hunter.com)
     )
   )
     8、修改$ORACLE_HOME/netword/admin/tnsnames.ora (根據需要安裝Oracle客戶端),如下爲示例:
  NAMES.DIRECTORY_PATH=(TNSNAMES,ONAMES,HOSTNAME)
 
     9、修改/www/conf/httpd.conf 增加ORACLE的環境變量
  SetEnv ORACLE_BASE /u01/oracle10g
  SetEnv ORACLE_HOME /u01/oracle10g/home10g
  SetEnv ORACLE_SID orcl
  SetEnv LD_LIBRARY_PATH  /usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/lib:/u01/oracle10g/home10g/lib

     10、修改$ORACLE_HOME的權限,使得外部用戶可以訪問$ORACLE_HOME目錄中的內容。
     11、啓動apache :
    /www/bin/apachectl start

     到此,理論上應該成功:)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章