文档章节

Linux下利用instantclient实现PHP远程连接Oracle

wangxuwei
 wangxuwei
发布于 2016/03/13 11:28
字数 422
阅读 27
收藏 0

一、安装instantclient

直接解压、并设置好环境变量即可,具体可参考以前的一篇博文:

http://blog.sina.com.cn/s/blog_54dd80920101d8mf.html

  特别要在安装目录建立以下符号连接:(在否则编译oci8模块通不过)

sudo ln -s libclntsh.so.11.1 libclntsh.so

sudo ln -s libocci.so.11.1 libocci.so

二、装oci8扩展

1、去http://pecl.php.net/package/oci8 下载最新源代码

2、解压tar xzvf oci8-2.0.8.tgz

3、cd oci8-2.0.8/ 并执行/opt/php/bin/phpize

4、./configure --with-oci8=shared,instantclient,/opt/ora11g/instantclient_11_2

5、make

6、sudo make install 这时oci8扩展模块已经安装到PHP中了,我的模块路径:/opt/php/lib/php/extensions/no-debug-zts-20121212/oci8.so

7、 修改/opt/php/lib/php.ini加入extension=oci8.so;

    也可以是全路径:extension=/opt/php/lib/php/extensions/no-debug-zts-20121212/oci8.so;

三、Restart Apache. 

sudo service apachectl restart

四、测试

<?php
header("Content-Type: text/html;charset=utf-8");
$dbconn =  oci_connect('scott','tiger',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT = 1521))(CONNECT_DATA =(SID=orcl)))");

if ($dbconn) {
    echo '连接成功';
}else {
    echo '连接失败';
}

//查询
$oci_rs = oci_parse($dbconn,'SELECT * FROM user_tables');  //预处理SQL
oci_execute($oci_rs); //执行SQL
while ($row = oci_fetch_array($oci_rs,OCI_ASSOC)) {
    print_r($row);
}//处理结果

?>


五、中文乱码问题

PHP页面中文问题:

header("Content-Type: text/html;charset=utf-8");

数据库编码导致中文问题:把oci_connect('scott','tiger',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = orcl)))");改为oci_connect('scott','tiger',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.110)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = orcl)))",'utf8');


六、装PDO扩展

1、进入PHP源码目录

2、cd ext/pdo_oci

3、执行/opt/php/bin/phpize

4、 ./configure --with-php-config=/opt/php/bin/php-config --with-pdo-oci=instantclient,/opt/ora11g/instantclient_11_2,11.2.0.4.0

5、make

6、sudo make install 这时pdo_oci.so扩展模块已经安装到PHP中了,我的模块路径:/opt/php/lib/php/extensions/no-debug-zts-20121212/pdo_oci.so

7、 修改/opt/php/lib/php.ini加入extension=pdo_oci.so;


© 著作权归作者所有

wangxuwei
粉丝 27
博文 342
码字总数 135552
作品 0
杭州
其他
私信 提问
linux单独安装oracle客户端及exp/imp工具配置

linux单独安装oracle客户端及exp/imp工具配置 weaimike 本篇文章的操作在实际环境中进行过测试! 闲话少说,直接进入正文,下面为大家介绍在linux环境中如何单独配置oracle客户端去远程访问o...

rootliu
04/05
93
0
C#远程连接Oracle数据库(通过System.Data.OracleClient)

在.NET中使用System.Data.OracleClient库连接Oracle数据库的步骤 1.下载并安装Instant Client Instant Client可以在Oracle官方网站下载到 对于Windows,Instant Client有三种版本: 1)适用于...

北风其凉
2014/08/07
13K
2
PHP5.3 + oracle10g 配置篇

PHP5.3 + oracle10g 配置篇 apache错误:加载不了php_oci8.dll文件,具体原因我到现在没有查出来(现在已经解决,在下面可以看到)。 所以最后卸载了oracle,这也就是远程链接数据库的一点省心...

wuyexiong
2012/09/11
1K
0
Mac OS 安装配置 instant client

下载资源 下载三个文件(oracle 官网) instantclient-basic-macos.x64-18.1.0.0.0.zip instantclient-sdk-macos.x64-18.1.0.0.0-2.zip instantclient-sqlplus-macos.x64-18.1.0.0.0.zip 2. ......

石头_jack
06/30
143
0
linux服务器上 oracle instantclient 客户端的安装和配置

linux服务器上 oracle instantclient 客户端的安装和配置 2013年03月07日 18:03:16 阅读数:3437 Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 从oracle网站下载。 下载地...

rootliu
2018/05/16
68
0

没有更多内容

加载失败,请刷新页面

加载更多

cpu load过高问题排查

load average的概念 top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程...

mskk
20分钟前
4
0
用spring boot 实现websocket

import java.io.IOException;import javax.websocket.OnClose;import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import java......

jingshishengxu
30分钟前
3
0
shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向,管道符和作业控制

shell介绍 可以使用 yum list |grep zsh 或者 yum list |grep ksh 这样可以搜索 zsh 和 ksh ,有需要的话可以安装 总之,默认使用的就是 .bash shell 命令历史 输入过的命令会被保存在一个文...

doomcat
47分钟前
7
0
1995年的资深工程师,和你谈谈如何进阶

1995年的资深工程师,和你谈谈如何进阶 自我介绍 网络ID:杭城小刘,城市:顾名思义,人在杭州。1995年出生,本科毕业,现在是一名 iOS 资深工程师,年薪 35w。兴趣爱好广泛:乒乓球、美食、...

杭城小刘
今天
10
0
Kafka 面试题

1.Kafka中的ISR、AR代表什么? ISR:与leader保持同步的follower集合 AR:分区的所有副本 2.Kafka中的HW、LEO分别代表什么? LEO:每个副本的最后条消息的offset HW:一个分区中所有副本最小...

GrayWorld
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部