因爲公司某項目須要鏈接oracle數據庫,該項目使用的開發語言爲PHP,故須要對PHP進行擴展php
服務器:Centos7linux
PHP:7.2, 源碼安裝;安裝路徑:/usr/local/xxx/php-7.2數據庫
下載oracle所需客戶端,我這裏使用的是zip包.vim
下載地址bash
下載後存放到某路徑下,我這裏爲/data/soft目錄下服務器
注意,php7版本的某些擴展已經集合到php的源碼中,咱們能夠直接對php的源碼進行從新編譯,而不須要再下載所謂的其餘軟件包php7
若是php在安裝完後刪除了,須要去官網找尋對應的版本下載並解壓,我這裏用的是7.2.11的oracle
解壓instantclient-basic-linux.x64-12.2.0.1.0.zip,並移動到/usr/lib/目錄下php-fpm
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip mv instantclient_12_2/ /usr/lib
解壓instantclient-sdk-linux.x64-12.2.0.1.0.zip,將解壓後的instantclient_12_2目錄下sdk目錄移動到/usr/lib/instantclient_12_2/下spa
unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip cp -rf instantclient_12_2/sdk/ /usr/lib/instantclient_12_2/
vim ~/.bash_profile
export ORACLE_HOME=/usr/lib/instantclient_12_2 export LD_LIBRARY_PATH=/usr/lib/instantclient_12_2 export PATH=$ORACLE_HOME:$LD_LIBRARY_PATH:$PATH
source ~/.bash_profile //查看環境變量,檢驗配置是否正確 echo $PATH
進入oracle目錄
cd /usr/lib/instantclient_12_2 ln -s libclntsh.so.12.1 libclntsh.so ln -s libclntshcore.so.12.1 libclntshcore.so 注意 libclntsh.so.12.1 根據下載版本不一樣而不一樣。如在 Oracle11.* 的版本則爲 libclntsh.so.11.1。 並且該連接必須配置,不然在如下的 configure 配置步驟將會報錯而致使配置失敗。
cd /data/soft/php-7.2.11/ext/oci8 //執行phpize /usr/local/xxx/php-7.2/bin/phpize //生成configure文件後執行configure ./configure --with-php-config=/usr/local/xxx/php-7.2/bin/php-config --with-oci8=shared,instantclient,/usr/lib/instantclient_12_2 //編輯過程當中若是有問題就解決問題,若是沒有繼續執行 make && make install
將生成的oci8.so 添加到php.ini
vim /usr/local/xxx/php-7.2/lib/php.ini
systemctl restart php-fpm7
/usr/local/xxx/php-7.2/bin/php -m
報錯信息以下 libaio.so.1: cannot open shared object file: No such file or director 解決 yum install libaio /usr/local/xxx/php-7.2.11/bin/pecl install oci8 以後輸入以下安裝便可. instantclient,/usr/lib/instantclient_12_2/ 而後重啓php
cd /data/soft/php-7.2.11/ext/pdo_oci //執行phpize /usr/local/xxx/php-7.2/bin/phpize //生成configure文件後執行configure ./configure --with-php-config=/usr/local/xxx/php-7.2/bin/php-config --with-pdo-oci=instantclient,/usr/lib/instantclient_12_2 //編輯過程當中若是有問題就解決問題,若是沒有繼續執行 make && make install
將生成的pdo_oci.so 添加到php.ini
vim /usr/local/xxx/php-7.2/lib/php.ini
systemctl restart php-fpm7
/usr/local/xxx/php-7.2/bin/php -m
在進行php擴展的過程當中,走了不少的坑,前先後後忙活了大約一天多的時間,總算是處理好了.
前期看各類博客,發現不少是相似的,都沒法實現.上面說有用rpm,有用zip包的,
也有使用的版本爲11.2的,也有12.2的.通過本身不斷的摸索,加上網上的文章
後來終於使用12.2版本的zip包安裝上了.