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.zip
和instantclient-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)
Last updated
Was this helpful?