无标题文档
WDCDN联

盟内部测试火热进行中
wdCP系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdCDN系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
wdOS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdDNS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
注册 发贴 提问 回复-必看必看 wddns免费智能 DNS 开通 本地或虚拟机使 用wdcp 一键包在mysql编 译时"卡住"
【300G高防】双线 无视攻击 wdcp官方技术支持/服务 阿里云8折优惠券 无敌云 腾讯云优惠中,现注册更有260代金额券赠送
返回列表 发帖
提问三步曲: 提问先看教程/FAQ索引(wdcp,wdcp_v3,一键包)及搜索,会让你更快解决问题
1 提供详细,如系统版本,wdcp版本,软件版本等及错误的详细信息,贴上论坛或截图发论坛
2 做过哪些操作或改动设置等

温馨提示:信息不详,很可能会没人理你!论坛有教程说明的,也可能没人理!因为,你懂的

[教程] linux+apache+php连接oracle数据库

好久没回到这里发帖了,还是那样熟悉的感觉。

相信大家在linux下用mysql的居多吧,其实在linux下php也能做到访问oracle,由于项目需要,我需要访问到远程的oracle数据库,
废话不多说直接说配置流程,这个方法远程连接和连接本地oracle数据库都有效
一.准备工作
需要增加相关的扩展,安装oracle客户端、PDO_oci扩展、oci8扩展
二.文件下载
      (1)oracle客户端rpm包下载地址
       http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html  
      下载如下两个文件(下载文件需注册哦、wget命令就能下载):
       oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
      oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
(2)PDO_oci扩展、oci8扩展下载
   直接下载 http://pecl.php.net/package/PDO_OCI  (PDO_oci)
                    http://pecl.php.net/package/oci8  (oci8)

三.安装及配置oracle客户端
  1. #rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
  2. #rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
复制代码



安装好查看有没有安装成功
  1. rpm -qa | grep oracle                                                   查看oracle是否安装
复制代码



2.配置

       修改/etc/ld.so.conf  或在ld.so.conf.d文件夹下添加oracle-x86_64.conf文件,写入安装oracle客户端的lib路径:

  1. #vi /etc/ld.so.conf
  2. /usr/lib/oracle/11.2/client64/lib/     //加入此行,保存退出
复制代码



  64位系统需要创建32位的软链接
  1. ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client
  2. ln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
复制代码




定义环境变量
  1. vi etc/profile
复制代码

  1. export ORACLE_HOME=/usr/lib/oracle/11.2/client64/
  2.    export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH
  3.    export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
复制代码




然后用以下语句使其立即生效
  1. #source /etc/profile
复制代码




四.安装pdo_oci模块
  1. ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1
  2. ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1
复制代码


2.安装

       进入对应的扩展文件夹,例如/php/ext/php_oci

       然后开始安装

  1. #phpize
  2. # ./configure --with-php-config=php-config --with-pdo-oci=instantclient,/usr,10.2.0.1
  3. #make && make install
  4. #ll /usr/lib64/php/modules/
复制代码


可看到php_oci.so已在文件夹中


      3.配置

       有两种方法,其一,直接在php.ini中打开扩展,其二,在php.d文件夹中添加对应的ini文件及内容

  1. #vi /etc/php.ini
  2. 加入此行
  3. extension=pdo_oci.so
复制代码


五.安装oci8模块

  1.安装

      进入对应的扩展文件夹,开始安装

  1. phpize
  2. #./configure --with-php-config=php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib
  3. #make && make install
  4. #ll /usr/lib64/php/modules
复制代码


可看到oci8.so已在文件夹中

      2.配置

      有两种方法,其一,直接在php.ini中打开扩展,其二,在php.d文件夹中添加对应的ini文件及内容

  1. #vi /etc/php.ini
  2. 加入此行
  3. extension=oci8.so
复制代码


最后重启apache即可。phpinfo()可看到,php_oci及oci8扩展均已成功开启


可能发生的错误

1.在验证是否能连接数据库时,可能会提示缺少libaio.so

安装libaio.so方法 yum install libaio

2.lnmp连接oracle出现ORA-24408错误处理:

错误代码:ORA-24408: could not generate unique server group name

一般连接外部oracle服务器那一步骤时,可能会出现ORA-24408:could not generate unique server group name这样的错误,解决办法是在hosts中将主机名添加即可:

vi /etc/hosts

127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4 test

::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6 test

上面的代码中,test即为主机名。然后重启网络服务即可。service network restart

3.连接数据库成功,但查询时出现数据乱码

当远程连接oraceloci_connect的第四个参数为charset

OCI_connect('','','','zhs16gbk');

此方法觉得有效,不管你怎么改php、linux系统编码都解决不了。亲测。


以上都是自己在配置时的流程,亲测有效,遇到的这三个问题也是可以解决的。



返回列表