Centos下PHP7.1打开Oracle扩展
背景
最近因为项目研究了一下PHP集成Oracle,虽然这个组合很奇葩,但万一用到请勿采坑~
环境
- CentOS Linux release 7.3.1611 (Core)
- PHP7.1.1
安装oracle组件
下载 http://www.oracle.com/technet...
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
PS: 两个都必须安装,devel版本就是SDK
安装
# rpm -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
# rpm -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
安装成功会生成如下目录,64位系统必须软连接成旧版(否则编译报版本不支持的错,应该是历史问题,坑1)
# ln /usr/lib/oracle/12.2 /usr/lib/oracle/10.2.0.1
# ln /usr/include/oracle/12.2 /usr/include/oracle/10.2.0.1
添加环境变量
# vi etc/profile
加入
export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
生效
# source /etc/profile
编译安装oci8和pdo_oci
下载最新的包
oci8-2.1.8.tgz和PDO_OCI-1.0.tgz
编译安装oci8
# tar -zxf oci8-2.1.8.tgz
# cd oci8-2.1.8
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/12.2/client64/lib
# make
# make install
生成oci8.so即成功
编译安装pdo_oci
# tar -zxf PDO_OCI-1.0.tgz
# cd PDO_OCI-1.0
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-oci=instantclient,/usr,10.2.0.1
# make
# make install
生成pdo_oci.so即成功
打开PHP扩展
具体方式根据PHP环境而定,我的环境不需要改变so文件路径,使用生成的默认路径即可,只需要添加Additional .ini files到/usr/local/php/etc/php.d/,重启生效
确认生效状态
# php -m | grep -e oci8 -e PDO_OCI
oci8
PDO_OCI
大功告成
PS
由于编译安装下载的pdo_oci总是报错(坑2),于是到php.net下载了对应版本的php(比如:http://us1.php.net/get/php-7....),拷贝ext目录下的pdo_oci编译安装,步骤同上。
原文地址:https://segmentfault.com/a/1190000015592646
Centos下PHP7.1打开Oracle扩展的更多相关文章
- CentOS 7 & php7.2安装 php-redis 扩展
CentOS 7 & php7.2安装 php-redis 扩展 1.下载phpredis-developcd /tmpwget https://codeload.github.com/php ...
- windows下php7.1安装redis扩展以及redis测试使用全过程
最近做项目,需要用到redis相关知识.在Linux下,redis扩展安装起来很容易,但windows下还是会出问题的.因此,特此记下自己实践安装的整个过程,以方便后来人. 一,php中redis扩展 ...
- windows下php7.1安装redis扩展以及redis测试使用全过程(转)
最近做项目,需要用到redis相关知识.在Linux下,redis扩展安装起来很容易,但windows下还是会出问题的.因此,特此记下自己实践安装的整个过程,以方便后来人. 一,php中redis扩展 ...
- linux(centos)下安装PHP的PDO扩展
PHP 数据对象PDO扩展为PHP访问数据库定义了一个轻量级的一致接口.PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据.最近在我们的建站和O ...
- windows环境下为php打开ssh2扩展
安装步骤 1. 下载 php extension ssh2下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/ 根据自己PHP的 ...
- Kafka学习之(三)Centos下给PHP开启Kafka扩展(rdkafka)
Centos版本:Centos6.4,PHP版本:PHP7. 在上一篇文章中使用IP为192.168.9.154的机器安装并开启了Kafka进行了简单测试,充当了Kafka服务器. 本篇文章新开启一台 ...
- CentOS下安装PHP的AMQP扩展方法和步骤
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.基于此协议的客户端 ...
- CentOS7下PHP7.2安装redis扩展
1.安装phpize(存在忽略) yum install php-devel 2.下载扩展源码包,直接用wget,一般放在 /usr/local/src wget https://github.com ...
- CentOS下PHP7的编译安装,MySQL的支持和一些问题的解决
最近试了一下PHP7,在编译和支持MySQL上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程.简单来讲编译PHP7只需要3步: 1../buildconf --force 2../c ...
随机推荐
- Log4j日志等级
Log4j根据日志信息的重要程度,分OFF.FATAL.ERROR.WARN.INFO.DEBUG.ALL 当然再细分的话 还有 FATAL(严重错误), 但是Log4j官方建议实际实用的话,Log4 ...
- bzoj P2045 方格取数加强版【最大费用最大流】
今天脑子不太清醒,把数据范围看小了一直TTTTLE-- 最大费用最大流,每个格子拆成两个(x,y),(x,y)',(x,y)向(x,y)'连一条费用a[x][y]流量1的边表示选的一次,再连一条费用0 ...
- zoj 2532 Internship【最小割】
就是求哪些边在最大流上满流,也就是找割边.把0作为t点,s向所有的1~n连流量为inf的边,其他的边按照流量连.跑一遍最大流,从s顺着有残余流量的正向边dfs打标记fr,从t顺着正向边有残余流量的反向 ...
- layui table 详细讲解
layui.use('table', function () { var table = layui.table; /*第一种原始写法*/ ...
- NOIp 2014 联合权值 By cellur925
题目传送门 这题自己(真正)思考了很久(欣慰). (轻而易举)地发现这是一棵树后,打算从Dfs序中下功夫,推敲了很久规律,没看出来(太弱了). 开始手动枚举距离为2的情况,模模糊糊有了一些概念,但没有 ...
- 文件cp功能
#include<stdio.h> #include<unistd.h> #include<fcntl.h> #include<string.h> in ...
- VECTOR中pair的排序
vector中pair的排序方法 首先定义一个vector vector<pair<int,char> >vec; 调用排序函数sort sort(vec.begin(),ve ...
- 洛谷 P1501 [国家集训队]Tree II
看来这个LCT板子并没有什么问题 #include<cstdio> #include<algorithm> using namespace std; typedef long ...
- 给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零. 示例 2: 输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零. 代码部分 class Solution ...
- js的replace函数把"$"替换成成"\$"
var aa = 18$ 转换成 aa = 18\$ aa.replace("\$","\\\$"); 注意JS的replace方法只能替换第一 ...