在 Ubuntu 9.10 x86_64 編譯 Oracle Client 的 php extension

先安裝 apt-get install php-pear php5-dev php5-cli libaio1 build-essential 以及其他必要套件。

到 Oracle 官方網站下載 Oracle Database Instant Client,在下載頁面尋找適合的平台,進入之後下載 Basic 和 SDK 兩個 package 。

建立一個目錄,以供編譯使用:

mkdir -p /opt/oracle/instantclient
cd /opt/oracle/instantclient

接著把剛剛下載的兩個 package 解壓縮之後複製到目錄下。

unzip instantclient-basic-XXXXXXXXXXXXXX.zip
unzip instantclient-sdk-XXXXXXXXXXXX.zip

解壓縮之後會有 .so 檔,為了讓系統能夠 link 到,所以在 /etc/ld.so.conf 裡面把 /opt/oracle/instantclient 加到 /etc/ld.so.conf 檔案內的最下方,然後重跑 ldconfig 。

回到目錄下面建立 symbol link,請自行確認檔名

cd /opt/oracle/instantclient
ln -s libclntsh.so.*.1 libclntsh.so
ln -s libocci.so.*.1 libocci.so

用 pear 來編譯 oracle client 。

pecl install oci8

編譯時期會有一個問題:
Please provide the path to the ORACLE_HOME directory. Use ‘instantclient,/path/to/instant/client/lib’ if you’re compiling with Oracle Instant Client [autodetect]:
請在問題後面填入:
shared,instantclient,/opt/oracle/instantclient

完成之後…

Build process completed successfully
Installing ‘/usr/lib/php5/20060613/oci8.so’
install ok: channel://pecl.php.net/oci8-1.4.1
configuration option “php_ini” is not set to php.ini location
You should add “extension=oci8.so” to php.ini

只要再把 extension=oci8.so 加到 php.ini 就大功告成了。

Posted in DB

Leave a Reply

Your email address will not be published.