Linux下PHP開啟Oracle支持(oci8)
使用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 把下載文件上傳至linuxserver,並進行解壓
命令: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 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 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訪問
<?php phpinfo(); ?>
假設找到OCI8的部分就說明OCI安裝正常了。例如以下圖所看到的
說明oci8成功安裝,接下來就能夠使用php訪問oracle數據庫了
Linux下PHP開啟Oracle支持(oci8)