• 【linux环境】Linux环境 php连接oracle11g数据库(相关插件已备份至U盘)


    1、环境:centos6 、 LNMP(linux环境都可以,跟服务器没啥大关系)

    2、前期准备:弄清楚 项目php的运行目录,php.ini的配置目录,php-config的运行目录

    3、安装先知:步骤一=》安装oracle在linux环境的客户端,oracle-instantclient-basic 

                           步骤二=》安装php连接oracle扩展,php-oci8

    4、首先查看phpinfo(),是否已支持oci8扩展(查看php内核版本,这个很重要,命令:var_dump(12345678900),32位超过64亿显示float类型,64位显示int;另外一种方式查看版本:phpinfo() => 搜索‘architecture’ 结构,内核,代表了php的版本号x86和x64

    5、安装步骤如下(仅以64位版本为例):

    安装oracle-instantclient

    下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

    分别下载 oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm  和   oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

    放在/usr/packages/目录下,执行:

    #  cd /usr/packages/
    # rpm -ivh oracle-instantclient*

    此时会生成/usr/lib/oracle/11.2/client64/lib/目录。*注:下载对应数据库版本(注:这里的oracle11g 仅仅指的是 linux连接oracle数据库的客户端,选择11、12、19都可以的,与php版本无关。

    (上面路径一定要去看看是否生成了,这很重要,路径名称可能不同,部分机器会生成 /usr/lib/oracle/11.2/client/lib/目录)

    二、修改/etc/ld.so.conf配置文件

    追加以下内容 -- 上面生成文件的路径,没有64的写client/lib/:

    /usr/lib/oracle/11.2/client64/lib/

    保存、退出,执行命令 # ldconfig

    三、安装oci8

    下载最新的oci8组件

    下载地址:http://pecl.php.net/package/oci8

    下载 oci-2.0.8.tgz

    放在/usr/packages/目录下,依次执行:

    # cd /usr/packages/
    
    # tar -xvzf oci-2.0.8.tgz
    
    # cd oci-2.0.8
    
    # /usr/local/php/bin/phpize (用phpize生成configure配置文件,千万注意:phpize、php-config、instantclient目录一定要找对,这个需要自己去找)
    
    # ./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
    
    # make && make install

    成功后会告诉你oci8.so已经成功放在以下目录(这仅仅是我的目录,你的可能不同);

     

    四、配置PHP支持OCI扩展

    修改php配置文件

    # vi /usr/local/php/lib/php.ini文件

    在extension项后追加以下内容

    extension=oci8.so

     

    五、重启Apache/nginx服务测试

    # service apache2 restart   【-- apache】

    # service nginxd restart      【-- nginx】

    使用phpinfo()查看扩展是否开启,如果出现下图说明扩展开启

    六、测试数据库连接

    在站点根目录编写oracle.php

    代码如下:

    <?php
    header("Content-type: text/html; charset=utf-8");
    $conn= oci_connect('report', 'report', 'ip:port/service','zhs16gbk');
    if($conn) {
      echo"连接oracle成功!";
    }else{
      echo"连接oracle失败!";exit;
    }
    ?>

    七、以上过程亲测可用,不懂的可以留言。  --   发帖日期:2018/05/25

  • 相关阅读:
    洛谷 P1474 货币系统 Money Systems 题解
    洛谷 P5146 最大差值 题解
    洛谷 P1880 [NOI1995]石子合并 题解
    洛谷 P1063 能量项链 题解
    洛谷 P3385 【模板】负环 题解
    洛谷 P1522 牛的旅行 Cow Tours 题解
    洛谷 P2212 [USACO14MAR]浇地Watering the Fields 题解
    浅谈 C 语言中模块化设计的范式
    内联函数(Inline Functions)
    C++中全局变量的声明和定义
  • 原文地址:https://www.cnblogs.com/xuzhengzong/p/9104700.html
Copyright © 2020-2023  润新知