centos安裝php的oracle擴充套件

yzf01發表於2021-09-09

一.準備工作

      本機已有環境為PHP,apache,mysql,需要連oracle資料庫,所以需要開啟oracle擴充套件。我們需要做的工作有:安裝oracle客戶端、pdo_oci擴充套件、oci8擴充套件

二.檔案下載

      (1)oracle客戶端rpm包下載地址

        

      下載如下兩個檔案(下載檔案需註冊哦):

       oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
      oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm

      (2)擴充套件檔案下載,有兩種方式,第一種是下載單獨的擴充套件檔案,一種是直接下載PHP原始碼,在ext資料夾中有對應的擴充套件資料夾,以下我們以第二種方式給大家介紹。

            PDO_OCI-1.0.tgz      Oracle Call Interface driver for PDO

               oci8-1.4.5.tgz       Extension for Oracle Database,allows you to access Oracle databases

          下載你本機對應版本的PHP

三.安裝及配置oracle客戶端

      1.安裝     

[php] view plaincopy圖片描述圖片描述

  1. #rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm  

  2. #rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm  

      以下幾條rpm相關命令供參考:

[php] view plaincopy圖片描述圖片描述

  1. rpm -qa | grep oracle                                                   //檢視oracle是否安裝  

  2. rpm -qa                                                                 //檢視所有已安裝的人rpm包  

  3. rpm -e oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm           //解除安裝已安裝的rpm包  

  4. rpm -ivh --force oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm //強制安裝rpm包  

      2.配置

      修改/etc/ld.so.conf  或在ld.so.conf.d資料夾下新增oracle-x86_64.conf檔案,寫入安裝oracle客戶端的lib路徑:

[php] view plaincopy圖片描述圖片描述

  1. #vi /etc/ld.so.conf  

  2. /usr/lib/oracle/11.2/client64/lib/     //加入此行,儲存退出  

  3. 或者  

  4. echo '/usr/lib/oracle/11.2/client64/lib/' > /etc/ld.so.conf.d/oracle-x86_64.conf  


      64位系統需要建立32位的軟連結(這裡可能是一個遺留bug,不然後面編譯會出問題)

[php] view plaincopy圖片描述圖片描述

  1. ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client  

  2. ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client  


      定義環境變數

[php] view plaincopy圖片描述圖片描述

  1. vi etc/profile  


      加入以下幾行

[php] view plaincopy圖片描述圖片描述

  1. export ORACLE_HOME=/usr/lib/oracle/11.2/client64/  

  2. export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH  

  3. export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"  


      命令列輸入以下語句使環境配置立即生效

[php] view plaincopy圖片描述圖片描述

  1. #source /etc/profile  


四.安裝pdo_oci模組

      1.準備工作

       防止pdo_oci對oracle11支援不足(pdo_oci可能不支援oracle11g,需要做個軟連結成作為oracle10版本才能編譯過去):

[php] view plaincopy圖片描述圖片描述

  1. ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1  

  2. ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1  


      2.安裝

       進入對應的擴充套件資料夾,例如/php/ext/php_oci

       然後開始安裝

[php] view plaincopy圖片描述圖片描述

  1. #phpize  

  2. # ./configure --with-php-config=php-config --with-pdo-oci=instantclient,/usr,10.2.0.1  

  3. #make && make install  

  4. #ll /usr/lib64/php/modules/  


      可看到php_oci.so已在資料夾中

      3.配置

       有兩種方法,其一,直接在php.ini中開啟擴充套件,其二,在php.d資料夾中新增對應的ini檔案及內容

[php] view plaincopy圖片描述圖片描述

  1. #vi /etc/php.ini  

  2. extension=pdo_oci.so  //在php.ini中加入此行  

  3.   

  4.  或者直接在命令列輸入  

  5.   

  6. echo 'extension=pdo_oci.so' > /etc/php.d/pdo_oci.ini  


五.安裝oci8模組

      1.安裝

      進入對應的擴充套件資料夾,開始安裝

[php] view plaincopy圖片描述圖片描述

  1. phpize  

  2. #./configure --with-php-config=php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib  

  3. #make && make install  

  4. #ll /usr/lib64/php/modules  


      可看到oci8.so已在資料夾中

      2.配置

      有兩種方法,其一,直接在php.ini中開啟擴充套件,其二,在php.d資料夾中新增對應的ini檔案及內容

[php] view plaincopy圖片描述圖片描述

  1. #vi /etc/php.ini  

  2.   

  3. extension=oci8.so    //在php.ini中加入此行  

  4.   

  5. 或者直接在命令列輸入  

  6.   

  7. echo 'extension=oci8.so' > /etc/php.d/oci8.ini  

       最後重啟apache即可。phpinfo()可看到,php_oci及oci8擴充套件均已成功開啟

六.錯誤及解決方案

     1.checking for oci.h... configure: error: I'm too dumb to figure out where the include dir is in your Instant Client install

      解決方法:檢查--with-oci8,--with-pdo-oci的路徑是否正確

    2.configure: error: Oracle Instant Client SDK header files not found

     解決方法:是否是sdk檔案未安裝,即rmp檔名中包含devel的檔案,確認是否安裝成功。

    如果確定已安裝,可能是以下問題產生的,可能是你PHP的版本過低,我的PHP版本是PHP Version 5.1.6出現此問題之後,百思不得其解,各種查資料也找不到答案。

    兩個解決方案:

    第一,將你的PHP版本升級,至少升到>=5.2.6

    第二,我前面說過,可以自行去下載擴充套件檔案,我下載了oci8 1.4.5之後安裝成功。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2809523/,如需轉載,請註明出處,否則將追究法律責任。

相關文章