Ubuntu+php7.2 and window php7 安装oracle 插件

本文详细介绍了在Ubuntu环境下如何安装Oracle客户端和PHP7.2的oci8扩展,包括OracleInstantClient的下载、解压、环境变量设置,以及oci8扩展的安装和配置过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu+php7.2 安装oracle 插件

1、安装Oracle Client

由于要编译OCI扩展,我们需要Oracle客户端,这里我们下载Oracle Instant Client,选择Instant Client for Linux x86-64 basic版本下载。

另外要编译OCI必须还需要instant client SDK 包,下载解压之后合并到Base。

给出的网页最后面也有安装步骤,这里简述一下

  • 解压zip包,放置到某个目录下
  • 为当前版本的Instant Client创建合适的链接
  • 设置环境变量
输入:  sudo unzip instantclient-basic-linux.x64-12.1.0.2.0.zip
输入:  sudo unzip instantclient-sdk-linux.x64-12.1.0.2.0.zip
输入:  sudo mv instantclient_12_1/ /opt/oracle/
输入:  cd /opt/oracle/instantclient_12_1/
# 建立符号链接
输入:  sudo ln -s libclntsh.so.12.1 libclntsh.so
输入:  sudo ln -s libocci.so.12.1 libocci.so
# 打开 /etc/profile 在最后面加入
输入:  export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_1:$LD_LIBRARY_PATH
输入:  export PATH=/opt/oracle/instantclient_12_1:$PATH
# 最后source一下,使配置生效
输入:  source /etc/profile

2、安装php扩展oci8

输入:  sudo pecl install oci8

安裝期間會出現

Please provide the path to the ORACLE_HOME directory. Use ‘instantclient,/path/to/instant/client/lib’ if you’re compiling with Oracle Instant Client [autodetect] :

输入:  instantclient,/opt/oracle/instantclient_12_1

输入:  sudo vi /etc/php/7.2/fpm/php.ini   

php.ini 文字中添加:extension = oci8.so

输入:  sudo service php7.2-fpm restart 

查看phpinfo显示ioc8

window php7 安装oracle 插件  

wamp 环境 

1 、安装oralce Instant Client   Oracle Instant Client, Instant Client for Microsoft Windows (x64)

解压到 D:\ORACLE\instantclient_12_1

2 、创建环境变量
ORACLE_HOME = D:\ORACLE\instantclient_12_1
Path中,增加 D:\ORACLE\instantclient_12_1

3、下载插件 PECL :: Package :: oci8 2.2.0 for Windows  或者 windows.php.net - /downloads/pecl/releases/oci8/  

复制php_oci8.dll,php_oci8_11g.dll,php_oci8_12c.dll 到wamp\bin\php\php7.0.10\ext

4、修改php.ini

wamp 集成环境的php.ini 是wamp\bin\php\php7.0.10\phpForApache.ini

去掉php_oci8.dll 和 php_oci8_11g.dll的分号

5、重启服务 phpinfo中查看oci8是否安装成功

php代码测试连接

$connect = oci_connect('username','password','ip:port/servicename') or die('数据库连接失败');
$sql = "SELECT * FROM test WHERE  ROWNUM <= 10";
$testDataBase = oci_parse($connect,$sql);
oci_execute($testDataBase,OCI_DEFAULT);

$result=oci_fetch_row($testDataBase);

var_dump($result);

可能出现的问题

1、无法加载动态库'oci8.so'(PHP 7.2) - IT屋-程序员软件开发技术分享社区

/usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so (libmql1.so: cannot open shared object file: No such file or directory)
oci8.so本身依赖于多个共享库,您可以使用ldd找出哪些共享库:
ldd /usr/local/lib/php/extensions/no-debug-non-zts-20170718/oci8.so
这些.so文件似乎是存储库中zip文件的一部分. 像D_LIBRARY_PATH=/usr/local/instantclient_12_1/ php这样运行PHP可以在您的容器中正常运行.您需要将这些文件移动到合理的位置.

将依赖的.so文件放到oci8.so同级目录或者确保环境变量D_LIBRARY_PATH是否设置,echo D_LIBRARY_PATH可以查看。

2、环境变量设置不正确影响crontab, crontab可能不识别环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值