使用php的常见问题是:编译php时忘记加入某扩展,后来想加入扩展,可是由于安装php后又装了一些东西如PEAR等,不想删除文件夹重装,那么此时就须要自己又一次添加某模块支持了,Linux操作系统下能够用phpize给PHP动态加入扩展.下面就以扩展模块
oci8为例(php连接oracle数据库须要改扩展支持)做简单的说明.(下面全部资源能够訪问http://download.csdn.net/detail/haiqiao_2010/8294513 进行统一下载)

1.下载Oracle客户端程序包,当中包括OCI、OCCI和JDBC-OCI等相关文件

 1.1
依据Linux系统选择相应的软件,我的为32位系统,所下面载例如以下文件:

oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm

1.2下载地址: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
(Oracle官网下载须要注冊用户)

2.安装oracle客户端,执行下面命令就可以:

rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0.i386.rpm

rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0.i386.rpm

3.安装oci8 php扩展

3.1 下载oci8-1.4.10.tgz 

下载地址:http://pecl.php.net/get/oci8-1.4.10.tgz

3.2 把下载文件上传至linuxserver,并进行解压

命令:tar zxvf oci8-1.4.10.tgz#解压

3.3 转到解压文件夹

命令:cd oci8-1.4.10

3.4
使用phpize准备 PHP 外挂模块的编译环境。会依据指定的环境变量生成编译时须要的makefile。phpize是属于php-devel的内容。所以centos下仅仅要执行yum install php-devel进行安装就可以 (注意:/usr/local/php/bin/phpize
为我的php文件夹,不同则需改之;假设是64位的系统,client改成client64)

/usr/local/php/bin/phpize CFLAGS="-I/usr/lib/oracle/11.1/client" CXXFLAGS="-I/usr/lib/oracle/11.1/client"

3.5
编译,安装

要有与现有php全然同样的php压缩包。

我用的是php-5.5.3.tar.gz。展开后进入里面的ext/oci8文件夹下,

然后执行命令: /usr/local/php/bin/phpize #这是一个可执行的文本文件,要确保它在系统中

会发现当前文件夹下多了一些configure文件。

假设没报错,则执行命令;

./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=/usr/lib/oracle/11.1/client

注意要先确保/usr/local/php/bin/php-config存在。假设你的php安装路径不是默认的,要改。

再执行下面命令 ,然后它告诉你一个文件夹,你把该文件夹下的oci8.so复制到你php.ini中的extension_dir指向的文件夹中

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/client。然后又一次make就会成功了。

4. 改动PHP.ini(/usr/local/php/etc/php.ini)

在extension_dir
= "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"后添加一行:

extension
= "oci8.so"

注意:要确保/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
该文件夹下有oci8.so文件

5.重新启动apache,让oci生效

6.在web文件夹下创建phpinfo.php文件在当中输入一下内容。并通过web訪问

<?php
phpinfo();
?>

假设找到OCI8的部分就说明OCI安装正常了。例如以下图所看到的

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpcWlhb18yMDEw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

说明oci8成功安装,接下来就能够使用php訪问oracle数据库了

Linux下PHP开启Oracle支持(oci8)的更多相关文章

  1. linux下如何开启oracle服务和开启监听

    su - oracle  切换到oracle用户模式下 sqlplus /nolog  //登录sqlplus SQL> connect /as sysdba  //连接oracle SQL&g ...

  2. LINUX下PHP开启短标签short_open_tag支持

    LINUX下PHP开启短标签short_open_tag支持 以CENTOS为例: 找到php.ini #find / -name php.ini #/etc/php.ini 编辑php.ini #v ...

  3. Linux下防火墙开启相关端口及查看已开启端口

    最近利用Apache Mina实现了一个http服务,发布到linux下发现无法访问,通过HttpClient来发送http请求时,报如下错误: Exception in thread "m ...

  4. Linux下的启动oracle的EM的命令

    Linux下的启动oracle的EM的命令 1.启动数据库 su - oracle $sqlplus / as sysdba sql>startup 2.启动监听 $lsnrctl LSNRCT ...

  5. linux下mysql开启远程访问权限 防火墙开放3306端口

    linux下mysql开启远程访问权限 防火墙开放3306端口 转载  2017-01-21   作者:JAVA-ANDROID 这篇文章主要为大家详细介绍了linux下mysql开启远程访问权限,防 ...

  6. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  7. Linux下Tomcat开启查看GC信息

    本文收录在Linux运维企业架构实战系列 一.开启GC日志 1.在Tomcat 的安装路径下,找到bin/catalina.sh 加上下面的配置,具体参数,自己配置: [root@centos7 to ...

  8. Aix/Linux下自动备份oracle数据库

    曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...

  9. Linux下安装OpenCV+Python支持

    以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支持,首先在安装OpenCV前安装必要的组件, ...

随机推荐

  1. JDBC连接mysql增删改查整体代码

    第一种比较low:用了statment,没有用preparedstatement.另外,插入时,不灵活,不能调用参数,但是如果直接给函数形参的话就会被SQL注入攻击,所以,最好在sql语句中使用?代表 ...

  2. 《UNIX环境高级编程》读书笔记之系统数据文件和信息(1)

    1.UNIX系统口令文件包括了下图所看到的的各字段,这些字段包括在<pwd.h>中定义的passwd结构体中 POSIX定义了两个获取口令文件项的函数. 在给出用户登录名或用户ID后.这两 ...

  3. True or False? and WHY??? Java HashSet Contains

    import java.util.HashSet; public class MyClass { public String s; public MyClass(String s) { this.s ...

  4. QMutex“A mutex must be unlocked in the same thread that locked it”解决(在run里创建对象是不二法宝)

    多线程时出现如下警告信息: A mutex must be unlocked in the same thread that locked it: 原因可能有二: 1.创建QMutex不在当前线程: ...

  5. BZOJ 2005 容斥原理

    思路: 题目让求的是 Σgcd(i,j) (i<=n,j<=m) n,m不同 没法线性筛 怎么办? 容斥原理!! f[x]表示gcd(i,j)=x的个数 g[x]为 存在公约数=x 的数对 ...

  6. jqGrid添加删除功能(不和数据库交互)

    jqGrid添加删除功能(不和数据库交互) 一.背景需求 项目中需要在前端页面动态的添加行,删除行,上下移动行等,同时还不和数据库交互.一直在用jqGrid展示表格的我们,从没有深入的研究过它,当然看 ...

  7. 51nod 1557 两个集合 (严谨的逻辑题)

    题目: 1557 两个集合 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 小X有n个互不相同的整数: p1,p2,...,pn  ...

  8. PHP mysql_fetch_array得不到数据

    好久没写PHP了...为了数据库课设开始了PHP速成之旅... 光是简单的注册功能就坑了我好几个小时,不过万事开头难嘛...之后应该会快起来的. 先说一下昨天遇到的小坑, 我的表单是这么写的 < ...

  9. ActiveMQ学习笔记(15)----Message Dispatch高级特性(一)

    1. Message Cursors 1.1 概述 ActiveMQ发送持久化消息的典型的厝里方式是:当消息的消费者准备就绪时,消息发送系统把存储的消息按批次发送给消费者,在发送完一个批次的消息后,指 ...

  10. 一个简单的MyBatis项目(应用)

    ### 1. MYBATIS简介  MYBATIS是持久层框架,大大的简化了持久层开发.  当使用MYBATIS框架时,开发人员不必再编写繁琐的JDBC代码,只需要定义好每个功能对应的抽象方法与需要执 ...