linux下php连接oracle教程

安装篇

首先,PHP支持oracle我首先想到的是pdo相关驱动,看了一下还真有,叫做pdo_oci。

但还依赖 oracle instant client ,这个要到oracle官网下载:

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

选择对应系统的版本,点击进去,这里我的是64位linux,所以选择 Instant Client for Linux x86-64 ,之后会让你同意一个协议,叫做  Accept License Agreement ,勾选后就可以下载了。

值得一提的是,如果要通过wget方式下载,你需要注册一个oracle账号并登陆,然后先在自己电脑上点击下载,得到一个实际url(包含一个token),复制这个url去服务器上wget,直接wget网页里的url是下不了的,切记。

需要下载两个包:

oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm

oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

版本号可能不一样,看下关键词:basic 和 devel即可。

这两个包下载到服务器上,分别安装:

rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

因为是64位系统,为了防止编译php扩展出问题,将刚刚安装好的两个目录做个软连接

ln -s /usr/lib/oracle/12.1/client64 /usr/lib/oracle/12.1/client
ln -s /usr/include/oracle/12.1/client64 /usr/include/oracle/12.1/client

ok,下一步就开始安装 pdo_oci扩展。

首先你应该有一份php源码,如果没有,请到官网下载一份对应版本的。

假设我的源码在 /home/src/php56

cd /home/src/php56
cd ext/pdo_oci
phpize #注释:如果没有这个命令你需要找到php安装目录的bin/,如/usr/local/php/bin/phpize
./configure --with-pdo-oci=instantclient,/usr,12.1 --with-php-config=/usr/bin/php-config
#注:12.1需要对应上面安装的oracle instant的版本号,和oracle/12.1的数字一样,--with-php-config是和phpize同理,在php安装目录里的bin目录下,这两个要改成自己实际情况的。
make && make install

如果顺利的话,编译成功后,修改 php.ini ,在文件末尾空两行,加上

extension=pdo_oci.so;

好了,通过

php -m

命令看一下有没有PDO_OCI这一行,有的话就是ok了。

web服务记得要重启apache或php-fpm。

使用篇

使用过程跟pdo差不多,我对oracle还不是很了解,但是也遇到一个故障,那就是无法连接oracle。

一开始通过下面的方式连接:

$pdh = new PDO(‘oci:dbname=IP地址:端口号/SID‘,用户名,密码);

报错:

SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

后来在statckoverflow上找到办法,改成下面这种连接方式:

$tns = "  
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 你的IP)(PORT = 端口号))
    )
    (CONNECT_DATA =
      (SID = 你的oracle数据库的SID)
    )
  )
       ";
$db_username = "youname";
$db_password = "yourpassword";
try{
    $conn = new PDO("oci:dbname=".$tns,$db_username,$db_password);
}catch(PDOException $e){
    echo ($e->getMessage());
}

这样就没问题了。

时间: 2024-08-29 05:16:49

linux下php连接oracle教程的相关文章

Linux(Centos)下jdbc连接oracle速度超慢的问题

最近在centos下写个java swing程序,发现在linux用jdbc连接oracle及其缓慢,还经常失败.但是同样的程序在windows下运行就连接的非常快.网上搜索了很长时间都和我这情况没关系,偶然看到了下面的文章: 原文地址http://www.xuebuyuan.com/200181.html 解决使用JDBC连接orcale速度慢的问题 2012年04月01日 ⁄ 综合 ⁄ 共 341字 ⁄ 字号 小 中 大 ⁄ 评论关闭 使用java 开发程序,选用ojdbc14.jar的驱动

Linux下PHP连接MS SQLServer的办法

Linux下PHP连接MS SQLServer的办法分析问题 本来PHP脚本读写SQLServer是没有什么问题的,在Apache for windows和Windows IIS下可以工作的很好,一般可以通过ODBC或SQLServer Client连接,这都是Windows下面现成的.但是在Linux下面没有现成的ODBC和SQLServer Client,需要我们自己安装. 解决问题 一.相关软件 freetds-0.53.tgz 这个软件能够用Linux和Unix连接MS SQLServe

Linux下nginx编译安装教程和编译参数详解

这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl 需要ssl的支持,如果不需要ssl支持,请跳过这一步 复制代码代码如下: # yum install openssl* 3.gzip 类库安装 复制代码代码如下: yum install zlib zlib-

在linux下怎么查询oracle

1 查询oracle版本 select * from v$version 2 oracle 运行状态 select status from v$instance; 是RAC集群,可以使用CRS命令查看整个集群的实例运行状态: su - oracle crs_stat -t 在linux下怎么查询oracle,布布扣,bubuko.com

【Java】Linux下安装配置Oracle JDK 1.7版本

1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ②创建一个目录,解压压缩包 mkdir usr/lib/jvm 移动到该目录,并解压 [email protected]:/usr/lib$ sudo

关于Linux下的连接文件学习总结

1.连接文件区分为两种,一种类似windows下快捷方式,使用户能够快速连接到目标文件或目录. 另一种则通过文件系统中的inode连接来产生新文件名,而不是产生新文件. 两种方式分别称为符号/硬连接. 2. 每个文件都会占用一个inode,其中记录了文件的权限和属性等信息,而文件内容由inode指向的block来记录. 而想读取文件的内容,必须先经过文件所在目录block中记录的文件名来指向正确的inode号码才能读取. 所以文件名只与目录有关,但文件内容与inode相关. 3. 硬连接的由来:

linux下静默安装oracle

linux下静默安装oracle centos7.7 oracle11gR2 安装前的准备 1禁用ipv6 新加 [[email protected] ~]# vim /etc/sysconfig/network NETWORKING_IPV6=no 修改/etc/hosts,把ipv6那句本地主机名解析的注释掉 [[email protected] ~]# vim /etc/hosts # ::1 localhost localhost.localdomain localhost6 local

linux下ssh连接缓慢详解

摘自:https://blog.csdn.net/asd2479745295/article/details/83006379 linux下ssh连接缓慢详解原创皮的开心 最后发布于2018-10-11 09:13:37 阅读数 1824 收藏展开    最近发现公司新linux控制器使用ssh连接特别慢,大概要10秒钟左右,scp也是需要10秒左右,但是ping速度特别快.使用ssh -l IP -v 可以查看连接卡在,SSH2_MAG_SERVICE_ACCEPT received后,停顿了

Linux下PHP开启Oracle支持(oci8)

使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,那么此时就需要自己重新增加某模块支持了,Linux操作系统下可以用phpize给PHP动态添加扩展.下面就以扩展模块 oci8为例(php连接oracle数据库需要改扩展支持)做简单的说明. 1.下载Oracle客户端程序包,其中包含OCI.OCCI和JDBC-OCI等相关文件 1.1 根据Linux系统选择对应的软件,我的为32位系统,所以下载如下文件: ora