Centos下PHP7.1打開Oracle擴展


背景

最近因為項目研究了一下PHP集成Oracle,雖然這個組合很奇葩,但萬一用到請勿采坑~

環境

  • CentOS Linux release 7.3.1611 (Core)
  • PHP7.1.1

安裝oracle組件

下載 http://www.oracle.com/technet...
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
PS: 兩個都必須安裝,devel版本就是SDK
安裝


# rpm -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
# rpm -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

安裝成功會生成如下目錄,64位系統必須軟連接成舊版(否則編譯報版本不支持的錯,應該是歷史問題,坑1


# ln /usr/lib/oracle/12.2 /usr/lib/oracle/10.2.0.1
# ln /usr/include/oracle/12.2 /usr/include/oracle/10.2.0.1

添加環境變量


# vi etc/profile

加入


export ORACLE_HOME=/usr/lib/oracle/11.2/client64/  
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH  
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

生效


# source /etc/profile

編譯安裝oci8和pdo_oci

下載最新的包
oci8-2.1.8.tgz和PDO_OCI-1.0.tgz
編譯安裝oci8


# tar -zxf oci8-2.1.8.tgz
# cd oci8-2.1.8
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/12.2/client64/lib
# make
# make install

生成oci8.so即成功

編譯安裝pdo_oci


# tar -zxf PDO_OCI-1.0.tgz
# cd PDO_OCI-1.0
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-oci=instantclient,/usr,10.2.0.1
# make
# make install

生成pdo_oci.so即成功

打開PHP擴展

具體方式根據PHP環境而定,我的環境不需要改變so文件路徑,使用生成的默認路徑即可,只需要添加Additional .ini files到/usr/local/php/etc/php.d/,重啟生效

確認生效狀態


# php -m | grep -e oci8 -e PDO_OCI
oci8
PDO_OCI

大功告成

PS
由於編譯安裝下載的pdo_oci總是報錯(坑2),於是到php.net下載了對應版本的php(比如:http://us1.php.net/get/php-7....),拷貝ext目錄下的pdo_oci編譯安裝,步驟同上。

原文地址:https://segmentfault.com/a/1190000015592646


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM