PHP一般跟MySQL數據庫搭配使用,但最近遇到一個需求需要實現PHP連接Oracle,了解到PHP可以通過pdo_oci和oci8擴展來連接Oracle,這里將安裝的過程記錄下來。
安裝環境:PHP7.2.18,Deepin15.10
首先,安裝oci8和pdo_oci擴展依賴的Oracle client。
了解到需要連接的Oracle版本為11.2.0.4.0,在這里下載對應版本的Oracle client壓縮包。
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
將上面的壓縮包放入同一個目錄中解壓,這里放入/opt/oracle目錄,然后解壓,命令如下:
cd /opt/oracle unzip instantclient-basic-linux.x64-11.2.0.4.0.zip unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
將解壓后的文件夾重命名
mv instantclient_11_2 instantclient
添加軟連接
cd instantclient ln -s libclntsh.so.11.1 libclntsh.so ln -s libocci.so.11.1 libocci.so
安裝 libaio
軟件包。這在某些 Linux 版本中名為 libaio1,
當前系統環境下軟件包的名稱為libaio1
sudo apt-get install -y libaio1
生成動態鏈接庫系統緩存
sudo sh -c "echo /opt/oracle/instantclient > \ /etc/ld.so.conf.d/oracle-instantclient.conf" sudo ldconfig
然后,編譯安裝oci8擴展和pdo_oci擴展
PHP的oci8和pdo_oci擴展都已包含在PHP的源碼擴展包目錄中,所以首先從PHP的官方github倉庫下載對應自己PHP版本的PHP源代碼,這里是7.2.18,可通過克隆和下載壓縮包的方式,我這里通過下載壓縮包的方式,下載后放入/usr/local/src目錄下解壓,解壓后的目錄為/usr/local/src/php-7.2.18。注意:php、phpize、php-config都需要在PATH環境變量中找到。
編譯安裝oci8擴展
cp -r /usr/local/src/php-7.2.18/ext/oci8/ /tmp/ cd /tmp/oci8 phpize ./configure --with-oci8=instantclient,/opt/oracle/instantclient make sudo make install
完成后,編輯php.ini文件,加入extension=oci8,運行php -m 命令查看有oci8表明安裝成功。
編譯安裝pdo_oci擴展
cp -r /usr/local/src/php-7.2.18/ext/pdo_oci/ /tmp/ cd /tmp/pdo_oci phpize ./configure --with-oci8=instantclient,/opt/oracle/instantclient,11.2.0.4.0 make sudo make install
完成后,編輯php.ini文件,加入extension=pdo_oci,運行php -m 命令查看有PDO_OCI表明安裝成功。