Linux下php5.3编译oracle客户端
因项目需要在linux下进行php5.3的oracle客户端编译,简要介绍一下步骤及走过的弯路。
1.下载Oracle客户端程序包,其中包含OCI、OCCI和JDBC-OCI等相关文件。
1.1下载文件地址
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
根据操作系统的版本选择对应的软件,我需要的是X86_64选择
Instant Client for Linux x86-64
1.2需要下载的文件如下:
oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
需要强调的一点是这里需要注册一个oracle的账户才能正常下载。
2.安装Oracle客户端程序包。
将程序包上传到服务器指定目录里
chmod +x *.rpm
#给RPM包赋执行权限
rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
#安装RPM包
echo "/usr/lib/oracle/11.1/client64/lib/" > /etc/ld.so.conf.d/oracle_client.conf
#将库路径加到默认加载中
/sbin/ldconfig
#重新加载动态链接库
3.安装OCI8的php扩展(这里指定php的安装路径为/usr/local/webserver/php)
yum install libaio
#yum安装libaio库,libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高
wget http://pecl.php.net/get/oci8-1.4.10.tgz
#下载OCI扩展
tar zxvf oci8-1.4.10.tgz
#解压
cd oci8-1.4.10
/usr/local/webserver/php/bin/phpize CFLAGS="-I/usr/lib/oracle/11.1/client64" CXXFLAGS="-I/usr/lib/oracle/11.1/client64"#使用phpize准备 PHP 外挂模块的编译环境,会根据指定的环境变量生成编译时需要的makefile,phpize是属于php-devel的内容,所以centos下只要运行yum install php-devel进行安装即可
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=/usr/lib/oracle/11.1/client64
make
make install#编译,安装
需要强调的是make的时候会报错,显示各种找不到库文件,需要对makefile文件进行修改加入oralce的运行库地址
打开makefile,寻找INCLUDE,形式如下:
INCLUDES = -I/usr/local/php/include/php -I/usr/include/oracle/10.2.0.3/client
然后在末尾加上="-I/usr/lib/oracle/11.1/client64,然后重新make就会成功了。
4.修改PHP.ini(/usr/local/webserver/php/etc/php.ini)
在extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"后增加一行:
extension = "oci8.so"
5.重启apache让OCI生效
6.在web目录下创建phpinfo.php文件在其中输入一下内容,并通过web访问
<?php
phpinfo();
?>
如果找到OCI8的部分就说明OCI安装正常了,如下图所示
接下来就能通过php访问oracle数据库了,需要注意的是php下Oracle的连接字符串
<?php
$username='***';
$passwd='***';
$protocol='TCP';
$SERVICE_NAME='***';
$ORACLE_SERVER_IP_ADDRESS='***.***.***.***';
$Port='1521';$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = $protocol)(HOST = $ORACLE_SERVER_IP_ADDRESS)(PORT = $Port)))(CONNECT_DATA=(SID=$SERVICE_NAME)))";
$conn = oci_connect($username,$passwd, $db);
PutEnv("NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8");
if (!$conn) {$e = oci_error();
print htmlentities($e['message']);
exit;
}else {
echo "连接oracle成功!";
return $conn;
}?>
作者: 付海军
出处:http://fuhj02.cnblogs.com
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接且保证内容完整!否则必究法律责任!
个人网站: http://www.fuhaijun.com/
转载于:https://www.cnblogs.com/fuhj02/p/3375144.html
Linux下php5.3编译oracle客户端相关推荐
- vc6可编译的 linux 源码,Linux 下源码编译FFMEG
1. 安装依赖关系 $ sudo apt-get update $ sudo apt-get -y install autoconf automake build-essential libass-d ...
- linux下源码编译升级ssh版本,ssh打补丁过程
linux下源码编译升级ssh版本过程 记录打补丁之ssh源码编译升级过程 安装前软件准备 升级步骤 结尾及一些坑 记录打补丁之ssh源码编译升级过程 应安全报告要求需要修复操作系统中的ssh协议,原 ...
- 在Linux下gcc缺省编译,在Linux下用gcc编译hello world
1. 确保Linux系统里已经装好了gcc 测试:输入gcc后是如下的结果就说明已经安装成功 2. 创建HelloWorld.c 使用 touch 创建一个空文件; 用vim编辑 按下A或者I 插入 ...
- linux编译linphone,linphone编译(一) linux 下 无video编译
最近使用asterisk做服务器,需要兼容sip客户端,所以对linphone进行编译. 网上有很多sip phone客户端,但大部分开源的都没有支持视频部分.所以采用了linphone,不知道大家有 ...
- PHP编译为静态库,Linux下将Tinyxml编译为静态库
转载请注明来源:Linux下将Tinyxml编译为静态库 一个应用需要在linux服务器上运行,不能保证每个服务器都有应用依赖的库,又懒得每个服务器都去安装下,也不太现实,于是就将应用所用到的库全部编 ...
- windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句
windows 下 cmd 命令行登录 oracle 数据库方法.直接就登录进来了. C:\Users\Administrator>sqlplusSQL*Plus: Release 11.2.0 ...
- Star: Ubuntu下配置和编译cpp-ethereum客户端启动GPU加速交易
Ubuntu下配置和编译cpp-ethereum客户端启动GPU加速交易 Ethereum,中文翻译是"以太坊",是一个公有区块链的开源项目.因为以太坊是基于P2P网络所以没有中心 ...
- automake linux,Linux下automake软件编译与发布快速入门
Linux下automake软件编译与发布快速入门 2008-04-22 eNet&Ciweek 进入编辑界面,输入内容如下: AUTOMAKE_OPTIONS=foreign bin_PRO ...
- linux ortp 编译,Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc
Linux下oSIP的编译使用应该是很简单的,其Install说明文档.doc Linux下oSIP的编译使用应该是很简单的,其Install说明文档里也介绍的比较清楚,本文主要就oSIP在Windo ...
最新文章
- linux shell (4) - Loop 循环
- 【论文解读】目标检测一卷到底之后,终于有人为它挖了个新坑|CVPR2021 Oral
- oracle表空间放在别的服务器,OracleXE的APEX可以访问同一服务器上的另一个Oracle数据库(10g),还是受限于XE数据库中的那些用户/表空间?...
- java xmlsec_找不到net.shibboleth.tool:xmlsectool:2.0.0
- android适配器持有者模式
- 数仓建模 项目_模型设计_数仓建模 PDF 下载
- html页面包含头文件,Web前端技术:HTML部分---Head标签中包含的头文件标签,body标签包含的内部标签...
- python修改word_Python自动化修改word实例
- Coursera | Introduction to Data Analytics(IBM) | Final Assignment
- 如何计算信号的信噪比
- 【ArcGIS】02 植被分类
- 字节跳动面试题 —— 水壶问题
- 用word写小论文时如何实现两栏格式公式居中,编号右对齐
- 约翰诺依曼在1940年发明了计算机英语,冯诺依曼元胞自动机
- 华南师范大学计算机学院保研,保研学霸专访
- android6.0以上模拟位置状态检测
- 学习opencv:PS滤镜—马赛克
- 指令系统由计算机组成决定,《计算机组成原理》第5章指令系统.ppt
- 同花顺_代码解析_技术指标_T、U
- 欧文分校计算机新sat多少分录取,加州大学欧文分校留学托福成绩要求95分 SAT1800分...
热门文章
- 最快的PNG图像解码器!速度提升2.75倍,比老大哥“libpng”还安全
- 给卡车穿上“隐身衣”,让自动驾驶车辆撞上它!这场自动驾驶比赛,比谁攻得快...
- Nature年度十大杰出论文公布:机器狗算法、近室温超导等入选,复旦中科院上榜...
- 科学院和工程院公布188名新院士!外籍占比26%,中科院北大清华38人,阿里王坚当选...
- 各种AI模型拿来就能用!五大深度学习模型库大盘点
- 不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”,刷新DARPA比赛成绩...
- 华人包揽CVPR 2019两篇最佳论文,李飞飞ImageNet十年后获奖
- 禅修笔记——硅谷最受欢迎的情商课
- 《Python硬件编程实战》——2.8 在Mac中安装Python
- 谈谈你对摩尔定律的理解,摩尔定律当前还是继续有效的吗?