PHP 使用 Oracle 資料庫的準備工作

發表於2017-07-27
系統 : Linux Centos 7.0

前言:想讓PHP可以操作Oracle資料庫,那絕對是需要安裝關於Oracle擴充套件。php的Oracle擴充套件叫oci

oracle擴充套件包下載地址:
http://www.oracle.com/technet...

網頁上會顯示如下的下載列表:

Download Oracle Database 10g Instant Client for Microsoft Windows (32-bit)

Download Oracle Database 10g Instant Client for Microsoft Windows 64-bit Itanium

Download Oracle Database 10g Instant Client for Microsoft Windows (x64)

Download Oracle Database 10g Instant Client for Linux x86

Download Oracle Database 10g Instant Client for Linux x86-64

Download Oracle Database 10g Instant Client for Linux Itanium ...

如系統是32位則選擇第4個,64位選擇第5個。

選擇錯誤會造成make php oci8的時候報相容失敗。

下面是64位系統的演示。

第一步:安裝oracle

rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
 
rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
 
rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

說明:oracle包版本要與oci8包版本相容,php官網給出的參考文字是

Use the OCI8 extension to access Oracle Database. The extension can be
linked with Oracle client libraries from Oracle Database 10.2, 11, or
12.1. These libraries are found in the database installation, or in the free Oracle Instant Client available from Oracle. Oracle's
standard cross-version connectivity applies. For example, PHP OCI8
linked with Instant Client 11.2 can connect to Oracle Database 9.2
onward. See Oracle's note "Oracle Client / Server Interoperability
Support" (ID 207303.1) for details. PHP OCI8 2.0 can be built with PHP
5.2 onward. Use the older PHP OCI8 1.4.10 when using PHP 4.3.9 through to PHP 5.1.x, or when only Oracle Database 9.2 client libraries are
available.

官網的意思是在安裝oci8的時候要保證 oracle擴充套件+oci8+php版本 要達成一致,否則就會出問題。 - - 英文不好大概就這個意思吧。

第二步:下載php oci擴充套件

安裝oci8擴充套件 下載地址:http://pecl.php.net/package/oci8

我的php版本是5.5.4的依照官網的描述我選擇的是 oci8-2.0.0.tgz 包.

tar zxvf oci8-2.0.0.tgz
 
cd oci8-2.0.0.tgz
 
/usr/bin/phpize
 
./configure --with-php-config=/usr/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib
 
make
 
make install

說明:

1.oci8-2.0.0.tgz這個是單獨的擴充套件包,也可以下載完整的php安裝包,如php-5.5.28.tar.gz,解壓後,cd到ext目錄下的oci8目錄即可。

2.phpize和php-config都不一定在上面的路徑中,因為安裝lamp環境的方法每個人不盡相同,可以用which命令查詢,如which phpize。

3.關鍵點是要保證phpize,php-config,以及oracle的安裝路徑要正確

第三步:配置 php.ini

其實大部分時候是不需要第三步的,系統會預設把擴充套件加上

可以用find命令找到這個檔案,找到類似extension = ""的配置項,加一行extension = "oci8.so" 說明:經過第二步的make,makeinstall後會生成一個oci8.so檔案,可以用find命令查詢一下路徑,extentsion="oci8.so"要結合extention_dir="/usr/lib/php/modules" 這個配置項來看,這兩句的意思就是在/usr/lib/php/modules下找oci8.so擴充套件,換句話說就是如果你的oci8擴充套件不是生成在/usr/lib/php/modules目錄下,那麼你就要改動extention_dir以確保oci8.so的路徑是正確的

上面步驟完成後,重啟代理服務。PHPINFO() 檢視下。是不是已經成功了?!

相關文章