一:介绍

php要连接访问oracle需要安装三个东西

1:Oracle Instant Client:即时客户端库

2:php的Oracle数据库扩展:oci8

3:php连接pdo的oci扩展:pdo_oci

原理:oci8提供php驱动,封装方法,php通过oci8内置的方法连接Oracle Instant Client,实现链接、操作oracle。然后通过pdo_oci供php语言操作。

二:安装oracle即时客户端

1:首先到oracle官网下载三个东西:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

2:我这里选择12.1版本。这三个东西分别是:basic、devel、sqlplus

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

3:安装alien和依赖包

sudo apt-get install alien libaio1
 alien的作用是把rpm包转换成deb包,因为我们是ubuntu系统

4:依次安装安装上面三个东西

sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
sudo alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
sudo alien -i oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

alien -i:把rpm装成deb安装

如果没有报错的话,安装的默认位置在这:/usr/lib/oracle/

三:安装 php的Oracle数据库扩展:oci8

我们通过pecl来安装

1:安装pecl命令

apt-get install php-pear 

2:安装php-dev,因为pecl会用到phpize,而这个东西在php-dev里面

apt-get install -y php7.2-dev 

3:更新一下pecl channel

sudo pecl channel-update pecl.php.net

4:到 pecl官网看下,这玩意儿怎么用 https://pecl.php.net/package/oci8

5:安装oci8

pecl install oci8-2.2.0

回车后出现这个画面:

把我们安装oracle即时客服端的位置写进去,上面红色标注。然后回车:

instantclient,/usr/lib/oracle/12.1/client64/lib

如果一切顺利的话,最终是这个画面:


说明
安装成功了

四:安装pdo_oci扩展

我的php 是apt install 安装,执行:apt-cache search php7.2,发现没有pdo_oci,没有的话我们就去官网下载源码编译安装。首先查看php版本,然后下载对应版本的php源码。

https://www.php.net/releases/

下载后解压,进入ext/pdo_oci准备编译

tar -xvf php-7.2.24.tar.gz
cd php-7.2.24/ext/pdo_oci

编译安装:

phpize
./configure --with-pdo-oci=instantclient,/usr/lib/oracle/12.1/client64/lib
make
make install
 ./configure 后面这一串和安装oci8的时候完全一样 

五:加入php.ini

我们可以查看一下扩展的位置:

然后加入php.ini配置

extension=oci8.so
extension=pdo_oci.so
 注意:extension=extension=oci8.so 一定要加载pdo.so的后面,不能在前面加载,注意加载顺序

然后重启一下fpm

五:php连接oracle

<?php
try{
$conn = new \PDO('oci:dbname=192.168.1.102/orcl;charset=utf8', 'user', 'password');
$conn ->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
print_r($result);
}catch(PDOException $e){
echo $e->getMessage(); //异常
}
 

ubuntu 安装php7.2 oracle扩展的更多相关文章

  1. Ubuntu安装PHP7

    安装PHP7 Ubuntu 16.04官方源自带PHP7,所以可以直接使用apt-get来安装. (1)安装PHP7以及常用扩展. -fpm php7.-mysql php7.-common php7 ...

  2. centos6下安装php7的memcached扩展

    安装php7的memcached扩展 .编译安装libmemcached- wget https://launchpadlibrarian.net/165454254/libmemcached-1.0 ...

  3. window下安装php7的memcache扩展

    安装memcache:http://www.runoob.com/memcached/memcached-connection.html1.4.4 c:\memcached\memcached.exe ...

  4. Ubuntu安装MongoDB和PHP扩展

    MongoDB是一个可伸缩的,高性能的开源NoSQL 文档数据库.主要用C++开发完成.面向文档存储,全索引支持,可复制和高可用性,自动分片等特征.其在非关系型数据库中是功能最丰富,最像关系型数据库 ...

  5. CentOS7 安装PHP7的swoole扩展:

    一.绪 Swoole简介 PHP异步网络通信引擎 最终编译为so文件作为PHP的扩展 准备工作 Linux环境 PHP7 swoole2.1 redis 源码安装PHP7 源码安装swoole htt ...

  6. Ubuntu16.04 安装PHP7 的 imagick 扩展

    转自:https://blog.csdn.net/qq_16885135/article/details/78130281 1.从 https://pecl.php.net/package/imagi ...

  7. 安装php的oracle扩展

    PHP 版本5.5 Windows下 1.首先下载OCI8的扩展 http://pecl.php.net/package/o... 我这里下的版本是5.5 Thread Safe (TS) x86 版 ...

  8. Ubuntu 安装 RabbitMQ 和PHP扩展 - CSDN博客

    1.ubuntu16.04中安装RabbitMQ 1).首先必须要有Erlang环境支持 安装之前要装一些必要的库: sudo apt-get install build-essential  sud ...

  9. 【win7】安装php7.3及扩展

    php7.3插件php-redisphp-igbinaryphp-amqp [初识RabbitMQ,附RabbitMQ+PHP演示实例]https://www.cnblogs.com/miketwai ...

  10. Ubuntu 安装 Redis和phpredis扩展

    服务器Ubuntu16.04 环境php7.0+Apache /****************************开始安装Redis****************************/ 1 ...

随机推荐

  1. MySQL 更新数据 不同条件(批量)更新不同值

    一般在更新时会遇到以下场景:1.全部更新:2.根据条件更新字段中的某部分内容:3.根据不同的条件更新不同的值,以下是几种场景中常用的update方法. 一.方法分类 二.具体用法 (1)根据条件更新值 ...

  2. LeetCode-343. 整数拆分 - 题解分析

    题目来源 343. 整数拆分 题目详情 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化. 返回 你可以获得的最大乘积 . 示例 1: 输入: ...

  3. 今天试试NuxtJS

    nuxt可以大幅缩短首屏加载时间 Progressive Web App (PWA) Support 渐进式web应用 简单说 就是让你的web应用表现的就像本地应用一样,可以添加快捷方式 打开的时候 ...

  4. Keil 5(Keil C51)安装与注册 [ 图文教程 ]

    前言 Keil C51 是 51 系列兼容单片机 C 语言软件开发系统,支持 8051 微控制器体系结构的 Keil 开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发 ...

  5. C#,Winform软件防破译-源代码加密简单方法之.NET REACTOR(一)

    一..NET Reactor介绍 .NET Reactor是一个功能强大的代码保护和软件许可系统,适用于为.NET Framework编写的软件,并支持生成.NET程序集的所有语言. 支持Blazor ...

  6. 【踩坑记录】docker启动报错mountpoint for cgroup not found

    具体报错信息: docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: start ...

  7. 为什么要使用 chmod 777

    如上图所示, 不使用sudo,报错没有权限 使用sudo,报错找不到命令 只好chmod 777一下了

  8. CesiumJS PrimitiveAPI 高级着色入门 - 从参数化几何与 Fabric 材质到着色器 - 上篇

    目录 0. 基础 0.1. 坐标系基础 0.2. 合并批次 1. 参数化几何 1.1. 几何类清单 1.2. 举例 1.3. 纯手搓几何 1.4. *子线程异步生成几何 2. 使用材质 2.1. 外观 ...

  9. vivo官网App模块化开发方案-ModularDevTool

    作者:vivo 互联网客户端团队- Wang Zhenyu 本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法. 说明:本工具基于vivo互联网客户端 ...

  10. P23_列表渲染

    列表渲染 wx:for 通过 wx:for 可以根据指定的数组,循环渲染重复的组件结构,语法示例如下: 默认情况下,当前循环项的索引用 index 表示:当前循环项用 item 表示. 手动指定索引和 ...