联系我们
咨询电话 010-64758810
曹责

曹责

更新于2019 09 16・

Linux下PHP7.2扩展oci8和pdo_oci

最近开发一个数据报送系统,系统使用PHP开发本地数据mysql,但是其中有个一块业务数据需要从orcal数据库里面读取,php通过sql语句直接读取业务数据入库。

一般的php环境是没有orcal扩展模块,所以需要拓展编译orcal扩展模块;

服务器上的php版本:php7.2.11

扩展前台需要在linux服务器上安装orcal客户端:

basic-10.2.0.5.0-linux-x64.zip

sdk-10.2.0.5.0-linux-x64.zip

官网下载 需要注册

这两个文件直接本地加压合并,sdk-10.2.0.5.0-linux-x64解压后里面有个sdk文件夹直接放到basic-10.2.0.5.0-linux-x64下面就可以了,解压后目录instantclient_10_2上传服务器;

我放在了/usr/local/instantclient_10_2

ln -s libclntsh.so.12.1 libclntsh.so
ln -s libclntsh.so.12.1 libclntsh.so
注意 libclntsh.so.12.1 根据下载版本不同而不同。如在 Oracle11.* 的版本则为 libclntsh.so.11.1。而且该链接必须配置,否则在以下的 configure 配置步骤将会报错而导致配置失败。

配置环境变量

vim /etc/profile

export ORACLE_HOME=/usr/local/instantclient_10_2
export LD_LIBRARY_PATH=/usr/local/instantclient_10_2
export PATH=$ORACLE_HOME:$LD_LIBRARY_PATH:$PATH

source /etc/profile
echo $PATH  

开始编译oci8和pdo_oci

1、进入php7.2.11/ext/oci8

phpize

 ./configure --with-php-config=/www/lanmps/php/bin/php-config  --with-oci8=shared,instantclient,/usr/local/instantclient_10_2

make && make install

2、进入php7.2.11/ext/pdo_oci

phpize

./configure --with-php-config=/www/lanmps/php/bin/php-config  --with-pdo-oci=instantclient,/usr/local/instantclient_10_2

make && make install

修改php.ini


[oci8]

extension = /*/no-debug-non-zts-20170718/oci8.so

extension = /*/no-debug-non-zts-20170718/pdo_oci.so

重启php-fpm

php -m //重启php查看扩展是否添加

测试脚本

<?php

$conn = oci_connect('用户名', '密码', 'IP地址/数据库');

if (!$conn) {

  $e = oci_error();

  print htmlentities($e['message']);

  exit;

}else {

  echo "连接oracle成功!";

}

?>



我们通过整合差异化,为客户提供有价值的定制化服务!

有效降低开发运维难度和整体IT成本

立即获取