Linux下PHP開啟Oracle支援(oci8),oracleoci8
使用php的常見問題是:編譯php時忘記添加某擴充,後來想添加擴充,但是因為安裝php後又裝了一些東西如PEAR等,不想刪除目錄重裝,那麼此時就需要自己重新增加某模組支援了,Linux作業系統下可以用phpize給PHP動態添加擴充.下面就以擴充模組 oci8為例(php串連oracle資料庫需要改擴充支援)做簡單的說明.(以下所有資源可以訪問http://download.csdn.net/detail/haiqiao_2010/8294513 進行統一下載)
1.下載Oracle用戶端程式包,其中包含OCI、OCCI和JDBC-OCI等相關檔案 1.1 根據Linux系統選擇對應的軟體,我的為32位系統,所以下載如下檔案:
oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm
1.2: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html (Oracle官網下載需要註冊使用者)
2.安裝oracle用戶端,運行以下命令即可:
rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0.i386.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0.i386.rpm
3.安裝oci8 php擴充
3.1 下載oci8-1.4.10.tgz
:http://pecl.php.net/get/oci8-1.4.10.tgz
3.2 把下載檔案上傳至linux伺服器,並進行解壓
命令:tar zxvf oci8-1.4.10.tgz#解壓
3.3 轉到解壓目錄
命令:cd oci8-1.4.10
3.4 使用phpize準備 PHP 外掛模組的編譯環境,會根據指定的環境變數產生編譯時間需要的makefile,phpize是屬於php-devel的內容,所以centos下只要運行yum install php-devel進行安裝即可 (注意:/usr/local/php/bin/phpize 為我的php目錄,不同則需改之;如果是64位的系統,client改成client64)
/usr/local/php/bin/phpize CFLAGS="-I/usr/lib/oracle/11.1/client" CXXFLAGS="-I/usr/lib/oracle/11.1/client"
3.5 編譯,安裝
要有與現有php完全相同的php壓縮包。我用的是php-5.5.3.tar.gz。展開後進入裡面的ext/oci8目錄下,
然後執行命令: /usr/local/php/bin/phpize #這是一個可執行檔文字檔,要確保它在系統中
會發現目前的目錄下多了一些configure檔案,
如果沒報錯,則運行命令;
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=/usr/lib/oracle/11.1/client
注意要先確保/usr/local/php/bin/php-config存在。如果你的php安裝路徑不是預設的,要改。
再運行以下命令 ,然後它告訴你一個目錄,你把該目錄下的oci8.so拷貝到你php.ini中的extension_dir指向的目錄中
make
make install
需要強調的是make的時候會報錯,顯示各種找不到庫檔案,需要對makefile檔案進行修改加入oralce的運行庫地址
開啟makefile,尋找INCLUDE,形式如下:
INCLUDES = -I/usr/local/php/include/php -I/usr/include/oracle/10.2.0.3/client
然後在末尾加上="-I/usr/lib/oracle/11.1/client,然後重新make就會成功了。
4. 修改PHP.ini(/usr/local/php/etc/php.ini)
在extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"後增加一行:
extension = "oci8.so"
注意:要確保/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ 該目錄下有oci8.so檔案
5.重啟apache,讓oci生效6.在web目錄下建立phpinfo.php檔案在其中輸入一下內容,並通過web訪問
<?phpphpinfo();?>
如果找到OCI8的部分就說明OCI安裝正常了,如所示
說明oci8安裝成功,接下來就可以使用php訪問oracle資料庫了