PHP一般跟MySQL数据库搭配使用,但最近遇到一个需求需要实现PHP连接Oracle,了解到PHP可以通过pdo_oci和oci8扩展来连接Oracle,这里将安装的过程记录下来。

安装环境:PHP7.2.18,Deepin15.10

首先,安装oci8和pdo_oci扩展依赖的Oracle client。

了解到需要连接的Oracle版本为11.2.0.4.0,在这里下载对应版本的Oracle client压缩包。

instantclient-basic-linux.x64-11.2.0.4.0.zip

instantclient-sdk-linux.x64-11.2.0.4.0.zip

将上面的压缩包放入同一个目录中解压,这里放入/opt/oracle目录,然后解压,命令如下:

cd /opt/oracle
unzip instantclient-basic-linux.x64-11.2.0.4..zip
unzip instantclient-sdk-linux.x64-11.2.0.4..zip

将解压后的文件夹重命名

mv instantclient_11_2 instantclient

添加软连接

cd instantclient
ln -s libclntsh.so.11.1 libclntsh.so
ln -s libocci.so.11.1 libocci.so

安装 libaio 软件包。这在某些 Linux 版本中名为 libaio1,当前系统环境下软件包的名称为libaio1

sudo apt-get install -y libaio1

生成动态链接库系统缓存

sudo sh -c "echo /opt/oracle/instantclient > \
/etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig

 

然后,编译安装oci8扩展和pdo_oci扩展

PHP的oci8和pdo_oci扩展都已包含在PHP的源码扩展包目录中,所以首先从PHP的官方github仓库下载对应自己PHP版本的PHP源代码,这里是7.2.18,可通过克隆和下载压缩包的方式,我这里通过下载压缩包的方式,下载后放入/usr/local/src目录下解压,解压后的目录为/usr/local/src/php-7.2.18。注意:php、phpize、php-config都需要在PATH环境变量中找到。

编译安装oci8扩展

cp -r /usr/local/src/php-7.2./ext/oci8/ /tmp/
cd /tmp/oci8
phpize
./configure --with-oci8=instantclient,/opt/oracle/instantclient
make
sudo make install

完成后,编辑php.ini文件,加入extension=oci8,运行php -m 命令查看有oci8表明安装成功。

编译安装pdo_oci扩展

cp -r /usr/local/src/php-7.2./ext/pdo_oci/ /tmp/
cd /tmp/pdo_oci
phpize
./configure --with-oci8=instantclient,/opt/oracle/instantclient,11.2.0.4.
make
sudo make install

完成后,编辑php.ini文件,加入extension=pdo_oci,运行php -m 命令查看有PDO_OCI表明安装成功。

php安装oci8和pdo_oci扩展实现连接oracle数据库的更多相关文章

  1. 通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库

    通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库. 首先下载安装包在Oralce官方网站上下载Oracle Instantclient Basic package.地址如 ...

  2. Linux下为PHP安装oci8及pdo_oci扩展

    下载instantclient 以及sdk instantclient-basic-linux-x86-64-11.2.0.2.0.zip oracle-instantclient11.2-sdk-1 ...

  3. Navicat 连接 Oracle数据库并,导入数据泵(.dmp)

    如有什么质疑的地方,希望可以和大家一起探讨,共同进步. 一.安装方法: 1.首先下载Navicat Premium和Oracle Database Oracle Database官网下载地址:http ...

  4. linux系统下php通过php_oci8扩展连接oracle数据库 Nginx

    相关版本信息: PHP Version 5.6.30 nginx version: nginx/1.10.3 Linux version 2.6.32-358.el6.x86_64 (mockbuil ...

  5. [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下

    一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...

  6. .net远程连接oracle数据库不用安装oracle客户端

    asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...

  7. .net远程连接oracle数据库不用安装oracle客户端的方法

    .net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...

  8. 无需安装Oracle Client连接Oracle数据库

    介绍 当我们采用 ODP.NET 检索Oracle 数据库的时候,Oracle客户端是必须安装.假如当时电脑上没有安装Oracle客户端,就不能这么用了,这时候Oracle.ManagedDataAc ...

  9. C# 连接Oracle数据库,免安装oracle客户端

    一.方案1 首先下面的内容,有待我的进一步测试和证实.18.12.20 被证实了,还需要安装Oracle客户端,或者本机上安装oracle数据库软件. 18.12.20 1.下载Oracle.Mana ...

随机推荐

  1. hadoop2.x 完全分布式详细集群搭建(图文:4台机器)

    在准备之前说一下本次搭建的各节点角色,进程. nameNode 进程:NameNode dataNode  进程:DataNode resourceManager :ResourceManager n ...

  2. Markdown 格式标记符号说明

    Markdown 格式标记符号说明 1. 标题 在行首插入 1 到 6个#,分别表示标题 1 到标题 6 # 这是标题1 ## 这是标题1 ###### 这是标题6 点击保存后的效果: 标题1 标题2 ...

  3. centos7.5安装公版mysql5.7.25

    ######### 卸载原来系统安装的包 # yum remove -y java cvs libselinux-devel postgresql mysql ecj jna sinjdoc 依赖包安 ...

  4. Coursera ML笔记 - 神经网络(Representation)

    前言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自Standford Andrew N ...

  5. 循环/闭包/setTimeout/Promise 综合

    控制台显示内容为? for (var i = 0; i < 5; i++) { console.log(i); } 控制台显示内容为? for (var i = 0; i < 5; i++ ...

  6. JS--封装JS跳转页面函数

    //JS跳转页面 function gourl($iAlert,$iPage,$history='',$target="window") { if ($iAlert != &quo ...

  7. Delphi 设计模式:《HeadFirst设计模式》Delphi2007代码---工厂模式之工厂方法[转]

      1   2{<HeadFirst设计模式>工厂模式之工厂方法 }   3{ 产品类                              }   4{ 编译工具 :Delphi20 ...

  8. JS中的一些函数式编程术语

    组合 Composition 组合某种类型(含函数)的两个元素,进而生成一个该类型的新元素:           JavaScript   1 2 3 4 5 6 7 let compose = (f ...

  9. 群晖的moments套件 发生未知错误

    一次了,哎 也不知道什么原因引起的 只能再搞一遍 先把homes文件夹数据弄走,免得弄丢 然后卸载momemts,删除数据库 还有其他人遇到这个情况http://www.gebi1.com/threa ...

  10. 二、Python安装和第一个程序

    <1.Python语言介绍1.官方介绍:Python 是一款易于学习且功能强大的编程语言. 它具有高效率的数据结构,能够简单又有效地实现面向对象编程.Python 简洁的语法与动态输入之特性,加 ...