php安装oracle扩展

本文实例讲述了PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法。分享给大家供大家参考,具体如下:

php连接oracle数据库虽然不是最佳拍档,但组内开发确实有这样需求。如果没有参考合适的文档,这个过程还是挺折磨人的,下面是一个记录,原型是国外的一篇博客 Installing PDO_OCI and OCI8 PHP extensions on CentOS 6.4 64bit

假设你已经安装好php的环境,php版本为5.3,要连接的oracle服务器是 11g R2,操作系统版本CentOS 6.4 x86_64。如果没有安装php,可以通过以下命令安装:

?


1

2

3

# yum install php php-pdo

# yum install php-devel php-pear php-fpm php-gd php-ldap \

php-mbstring php-xml php-xmlrpc php- zlib zlib-devel bc libaio glibc

假如web服务器使用apache。

1. 安装InstantClient

instantclient是oracle的连接数据库的简单客户端,不用安装一个500Moracle客户端就可以连接oracle数据库,有windows和linux版本。从 这里 选择需要的版本下载,只需Basic和Devel两个rpm包。

安装

?


1

2

# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

软链接

?


1

2

# ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client

# ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client

64位系统需要创建32位的软链接,这里可能是一个遗留bug,不然后面编译会出问题。

接下来还要让系统能够找到oracle客户端的库文件,修改LD_LIBRARY_PATH:

?


1

2

3

# vi /etc/profile.d/oracle.sh

export ORACLE_HOME=/usr/lib/oracle/11.2/client64

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

执行source /etc/profile.d/oracle.sh使环境变量生效。

2. 安装PDO_OCI

在连接互联网的情况下,通过pecl在线安装php的扩展非常简单,参考 How to install oracle instantclient and pdo_oci on ubuntu machine 。

https://pecl.php.net/package/PDO_OCI下载 PDO_OCI-1.0.tgz 源文件。

?


1

2

3

# wget https://pecl.php.net/get/PDO_OCI-1.0.tgz

# tar -xvf PDO_OCI-1.0.tgz

# cd PDO_OCI-1.0

由于PDO_OCI很久没有更新,所以下面需要编辑ODI_OCI-1.0文件夹里的config.m4文件来让它支持11g:

?


1

2

3

4

5

6

7

# 在第10行左右找到与下面类似的代码,添加这两行:

elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then

 PDO_OCI_VERSION=11.2

# 在第101行左右添加这几行:

11.2)

 PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)

 ;;

编译安装pdo_oci扩展:(安装完成后可在 /usr/lib64/php/modules/pdo_oci.so 找到这个模块)

?


1

2

3

4

$ phpize

$ ./configure --with-pdo-oci=instantclient,/usr,11.2

$ make

$ sudo make install

要启用这个扩展,在/etc/php.d/下新建一个pdo_oci.ini文件,内容:

?


1

extension=pdo_oci.so

验证安装成功:

# php -i|grep oci

看到类似下面的内容则安装成功:

/etc/php.d/pdo_oci.ini,

?


1

PDO drivers => oci, sqlite

?


1

# php -m

3. 安装OCI8

从 https://pecl.php.net/package/oci8下载oci8-2.0.8.tgz源文件。

?


1

2

3

# wget https://pecl.php.net/get/oci8-2.0.8.tgz

# tar -xvf oci8-2.0.8.tgz

# cd oci8-2.0.8

编译安装oci8扩展:

?


1

2

3

4

# phpize

# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib

# make

# make install

要启用这个扩展,在/etc/php.d/下新建一个oci8.ini文件,内容:

?


1

extension=oci8.so

验证安装成功:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

# php -i|grep oci8

/etc/php.d/oci8.ini,

oci8

oci8.connection_class => no value => no value

oci8.default_prefetch => 100 => 100

oci8.events => Off => Off

oci8.max_persistent => -1 => -1

oci8.old_oci_close_semantics => Off => Off

oci8.persistent_timeout => -1 => -1

oci8.ping_interval => 60 => 60

oci8.privileged_connect => Off => Off

oci8.statement_cache_size => 20 => 20

OLDPWD => /usr/local/src/oci8-2.0.8

_SERVER["OLDPWD"] => /usr/local/src/oci8-2.0.8

最后别忘了重启逆web服务器如apache,可以通过phpinfo()来确保扩展是否成功安装。

4. 测试连接

在你web服务器如apache的php目录下创建testoci.php:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

$conn = oci_connect(‘username‘, ‘password‘, ‘172.29.88.178/DBTEST‘);

$stid = oci_parse($conn, ‘select table_name from user_tables‘);

oci_execute($stid);

echo "<table>\n";

while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {

  echo "<tr>\n";

  foreach ($row as $item) {

    echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : " ")."</td>\n";

  }

  echo "</tr>\n";

}

echo "</table>\n";

?>

访问这个页面就应该可以得到结果了。

时间: 2024-10-31 00:12:27

php安装oracle扩展的相关文章

centos apache安装oracle扩展

参考网址: http://blog.csdn.net/a82168506/article/details/11763989 步骤如下: 下载安装包,下载地址.(我下载的11.1版本) http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下载对应的PHP源码包,下载地址 http://www.php.net/downloads.php 开始安装环境了 rpm -ivh oracle-instantclient11

linux系统下php oracle扩展OCI8的安装与配置

linux系统下php oracle扩展OCI8的安装与配置 实现PHP程序访问oracle DB时间:2014.09.02写作者:刘群英(qunyingliu) 环境描述:apache版本,PHP版本,oracle DB版本,linux发行版本 RPM包安装oracle-instantclient客户端 源码编译安装oci8扩展 系统环境与php配置修改:ld.so.conf.d目录配置文件与php.ini中扩展字段信息修改 重启apache使修改生效 测试链接代码,确认配置成功 环境描述:

Windows安装php Oracle扩展

前言 去IOE的浪潮下,很多大型公司古董级的系统还在使用IOE设备.新东家有些年头的系统都是使用Oracle数据库,为了省事,新架构下的业务直接通过编程语言API操作Oracle数据库,安装相关扩展对于第一次折腾的人来说,还是会碰到不少坑,这里做个总结. 下载Oracle客户端Instant Client windows只支持32位,不支持64位http://www.oracle.com/technetwork/topics/winsoft-085727.html 解压直接解压即可,无需安装 设

《oracle每日一练》免安装Oracle客户端使用PL/SQL

免安装Oracle客户端使用PL/SQL Oracle客户端挺招人烦的,部署连接它的应用通常需要先安装它的客户端,安装程序要求在目标机器上写注册表,假设你没有洁癖的话,你仍可能被下面的事情绊住:当你的机器上的其他程序依赖于x64的Oracle的程序,并且它们很有可能根本不是你写的,因此你还不敢随便乱动服务器,但是你可能需要一个PL/SQL用来在相同的环境下执行查询,这个时候你还是需要一个免安装的办法来处理这个问题. 1.下载Oracle Instant Client (32-bit) 因为我的P

linux下安装 oracle 11g

oracle 11g安装 一.环境准备 划分区 / 15000M /tmp 4096M /boot 100M Swap 4096M /u01 剩余空间 2.更改主机名,ip地址 3.安装软件包 那么linux系统需要给oralce准备的环境就到这里结束了,下面就等系统安装好后开始安装oracle了 4.关闭sendmail,加快系统启动速度 5.修改host表 开始检查 6.检查host表配置是否生效 6.检查ssh是否安装 7.查看swap和储存 8.修改shm 9.将shm添加到开机启动文件

Linux下PHP安装oci8扩展

PHP通常搭配Mysql使用,但有时候也会连接到Oracle数据库.安装PHP的oci8扩张之前,需要先安装Oracle Instant Client( basic 或 basic lite 版就行了).因为我们是从源码安装PHP扩展,所以还需要下载 Instant Client SDK.Oracle Instant Client相关软件包的下载请进入以下链接:http://www.oracle.com/technetwork/database/features/instant-client/i

免安装Oracle客户端和PL/SQL

写在前面: Oracle是典型的C/S结构,服务端提供oracle服务的实例,主要用于数据库的管理,对象的管理与存储.数据的 存储.查询.数据库资源的监控.监听等一些服务.而客户端只是一个与服务端交互的工具,如sqlplus,在sqlplus 里执行SQL语句传到服务端,服务端进行解析后执行SQL里的操作,并将操作结果输出到客户端.这就完成了一个客户 端与服务端交互的过程.简单点说,客户端就像一个远程桌面工具,只负责提供链接后台服务器的界面,具体的处理 操作都在服务器上. 上一篇文章我们主要讲解

linux 安装oci 扩展

1.下载Oracle即时客户端程序包 - Basic: 运行 OCI.OCCI 和 JDBC-OCI 应用程序所需的所有文件 ①.打开以下网址(本文以32位版为例): (Linux 32位版)http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html (Linux 64位版)http://www.oracle.com/technology/software/tech/oci/inst

【asm,1】ASM的安装+ oracle安装

注意:oracle  11g要想使用asm,必须首先要安装grid 软件,再安装oracle软件. 1.配置系统网络: 设置节点的ip:ip 不能冲突. a.修改主机名:/etc/sysconfig/network  ,不用设置网关. 注意:搭好rac以后主机名是不允许修改的. NETWORKING=yes NEWWORKING_IPV6=no HOSTNAME=yueasm b.设置ip地址: 公共网卡:/etc/sysconfig/network-scripts/ifcfg-eth0 设置静