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/oracleunzip instantclient-basic-linux.x64-11.2.0.4.0.zipunzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
将解压后的文件夹重命名
mv instantclient_11_2 instantclient
添加软连接
cd instantclientln -s libclntsh.so.11.1 libclntsh.soln -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版本的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/oci8phpize./configure --with-oci8=instantclient,/opt/oracle/instantclientmakesudo 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_ociphpize./configure --with-oci8=instantclient,/opt/oracle/instantclient,11.2.0.4.0makesudo make install
完成后,编辑php.ini文件,加入extension=pdo_oci,运行php -m 命令查看有PDO_OCI表明安装成功。