PHP 5.6 安装 Oracle 12.2 扩展

PHP 安装 Oracle 12.2 oci 和 pdo_oci 扩展。

[TOC]

安装 Oracle 客户端

下载

Instant Client Downloads for Linux x86-64 (64-bit)处下载instantclient-sdk-linux.x64-12.2.0.1.0.zipinstantclient-basic-linux.x64-12.2.0.1.0.zip

  • 即时客户端软件包-sdk:用于使用 Instant Client 开发 Oracle 应用程序的附加头文件和示例 makefile。

  • 即时客户端软件包-basic:运行 OCI,OCCI 和 JDBC-OCI 应用程序所需的所有文件。

解压

unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
mkdir /usr/lib/oracle
mv instantclient_12_2 /usr/lib/oracle/12.2

创建软连接

cd /usr/lib/oracle/12.2
ln -s libclntsh.so.12.2 libclntsh.so
ln -s libocci.so.12.2 libocci.so

配置 lib

echo "/usr/lib/oracle/12.2" > /etc/ld.so.conf.d/oracle-12.2.conf
ldconfig

安装 OCI8

下载 oci8

Extension for Oracle Database下载oci8-2.0.12.tgz

解压

tar zxvf oci8-2.0.12.tgz

安装

cd oci8-2.0.12
phpize
./configure --with-php-config=/php/bin/php-config  --with-oci8=instantclient,/usr/lib/oracle/12.2
# --with-oci8=instantclient,Oracle 安装位置
make install

安装 pdo_oci

当前安装 PHP 版本的源码

cd /php-version-source/ext/pdo_oci/

修改 config 文件

PHP 5.6 的 config.m4 文件不包含 Oracle 12.2 版本的支持,手动添加 12.2 版本。

sed -i "s/10.1/12.2/g" config.m4

安装

phpize
./configure --with-pdo-oci=instantclient,/usr/lib/oracle/12.2,12.2 --with-php-config=/php/bin/php-config
# --with-pdo-oci=instantclient,Oracle 安装位置,Oracle 版本

配置 php.ini

cat >> php.ini << EOF
extension=oci8.so
extension=pdo_oci.so
EOF

配置 php-fpm.conf

因为 PHP-FPM 可能读取不到 Oracle 安装位置,因此需要将 Oracle 安装位置通过环境变量注入。

在当前使用的 Pool 下添加(如 www)。

cat >> php-fpm.conf << EOF
env[LD_LIBRARY_PATH] = /usr/lib/oracle/12.2
env[ORACLE_HOME] = /usr/lib/oracle/12.2
EOF

重启 PHP-FPM

kill -USR2 $(cat php-fpm.pid)

technote-php-instant-12c

Oracle database connection in php 5.6 in Ubuntu

Last updated

Was this helpful?