linux系统下php oracle扩展OCI8的安装与配置

linux系统下php oracle扩展OCI8的安装与配置

实现PHP程序访问oracle DB
时间:2014.09.02
写作者:刘群英(qunyingliu)

  • 环境描述:apache版本,PHP版本,oracle DB版本,linux发行版本
  • RPM包安装oracle-instantclient客户端
  • 源码编译安装oci8扩展
  • 系统环境与php配置修改:ld.so.conf.d目录配置文件与php.ini中扩展字段信息修改
  • 重启apache使修改生效
  • 测试链接代码,确认配置成功

  1. 环境描述:
  • 本地系统:centos linux 6.4 x64
  • apache 2.2.22:/usr/local/apache2
  • PHP 5.4 : /usr/local/php
  • oracle DB 11.2.0.4

RPM包安装本地oracle client:

从[oracle Instant Client 官网 下载以下RPM包:

http://www.oracle.com/technetwork/cn/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

oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

使用以下命令进行安装:

rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

源码编译安装oci8扩展下载:

wget http://pecl.php.net/get/oci8-1.4.10.tgz

解压:tar -zxvf oci8-1.4.10.tgz

安装:

cd oci8-1.4.10/usr/local/php/bin/phpize CFLAGS="-I/usr/lib/oracle/11.2.0.4.0/client64/" CXXFLAGS="-I/usr/lib/oracle/11.2.0.4.0/client64/"

./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/11.2.0.4.0/client64/lib/

make

make instal

lphp路径和oracle client的路径需根据实际情况进行修改。

如果系统中存在pecl程序,可通过以下命令来安装oci8扩展:

pecl install oci8

系统环境与php配置修改修改系统配置:

echo    "/usr/lib/oracle/11.2.0.4.0/client64//lib/"

>/etc/ld.so.conf.d/oracle_client.conf/sbin/ldconfig

修改php.ini配置文件:

extension_dir = "/usr/local/php5/lib/ext"

extension = "oci8.so"

oci8.privileged_connect = on

重启apache使修改生效

/usr/local/apache2/bin/apachectl restart

测试链接代码,确认配置成功

<?php

$conn = oci_connect(‘qunyingliu‘, ‘testqunyingliu‘, ‘oracle.test.localhost/orcl‘);
//需要根据实际配置信息进行修改

$stid = oci_parse($conn, ‘select table_name from user_tables‘);
//数据库操作语句可根据实际需求进行修改
oci_execute($stid);

echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "

\n";
foreach ($row as $item) {
echo "<td>".($item !== null ? htmlentities($item, ENT_QUOTES) : " ")."\n";
}
echo "\n";
}
echo "</table>\n";

?>

相关参考:
http://php.net/manual/zh/function.oci-connect.php
http://php.net/manual/zh/book.oci8.php
http://pecl.php.net/get/oci8-1.4.10.tgz
http://pecl.php.net/package-changelog.php?package=oci8
http://www.oracle.com/technetwork/cn/topics/linuxx86-64soft-092277.html

时间: 2024-12-28 19:46:13

linux系统下php oracle扩展OCI8的安装与配置的相关文章

linux系统下软件安装包类型及安装介绍

linux系统下软件安装包类型及安装介绍 一.解析Linux应用软件安装包,通常Linux应用软件的安装包有四种: 1)tar包,如software-1.2.3-1.tar.gz.他是使用UNIX系统的打包工具tar打包的. 2)rpm包,如software-1.2.3-1.i386.rpm.他是Redhat Linux提供的一种包封装格式.包的管理工具YUM 3)dpkg包,如software-1.2.3-1.deb.他是Debain Linux提供的一种包封装格式.包的管理工具apt-get

linux系统下设置oracle开机自动启动

在Linux系统中,安装好oracle数据库服务后,并不像在Windows系统下一样,oracle服务在默认情况下会随时系统的启动自动启动.Linux系统中,是需要用户去手动进行设置,才能实现oracle开机自动启动的.本文将一步一步教你如何进行设置. 1.前提条件:你已经在Linux系统中正确安装好oracle服务,使用手动方式可以正常启动.   2.先以root身份登录到linux系统 键入命令"vi /etc/oratab"(使用vi编辑器编辑文件/etc/oratab),如图:

linux系统下创建oracle表空间和用户权限查询

创建用户和表空间: 1.登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2.以sysdba方式来打开sqlplus,命令如下: sqlplus / as sysdba 3.创建临时表空间: --查询临时表空间文件的绝对路径.如果需要的话,可以通过查询来写定绝对路径.一般用${ORACLE_HOME}就可以了 select name from v$tempfile; create temporary tablespac

Linux系统下解锁Oracle的Scott用户

1).在Oracle用户下面输入命令:lsnrctl status查看监听是否开启,如果未开启则需要开启监听,输入命令:lsnrctl start; 2).如果没有设置监听的话需要先建立一个监听,然后开启监听,新建监听的时候图像化界面可能会出现乱码的情况,需要现在Oracle用户下面输入:LANG=C 来把字符转变为英文,就可以避免乱码了 .之后在Oracle用户下面输入命令行输入netca来创建监听.创建完成之后,开启监听. 3).在Oracle用户下面输入命令sqlplus / as sys

windows操作系统下使用ssh操作linux系统下的oracle数据库

1.配置ssh:host:192.168.110.129 user:root  输入密码进入.. 2.su - oracle 3.sqlplus /nolog 4.conn sys/change_on_install as sysdba;

linux 系统下iostat、iotop、vmstat安装以及用法介绍

一.iostat安装与用法介绍 主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息. 用户可以通过指定统计的次数和时间来获得所需的统计信息. 1.安装(RedHat系列) 查看系统是否安装这个命令 #which iostat       ##显示如下,表示系统已经安装了 /usr/bin/iostat 如果没有安装,则安装 #yum install sysstat -y 2.语法 iostat [ 

Linux系统下的Nginx的缓存设置、压缩配置和自动列目录配置

(本文内所有的centos系统命令均使用斜体加粗表示,以便各位阅读) 注意!本人使用的是Lnmp脚本模式安装的Nginx 1.8.0稳定版,如果是从官网下载的版本,nginx.conf的配置文件有些不同,但是骨架是一模一样的,不耽误阅读. 缓存设置 nginx的服务器缓存能力还是值得肯定的,服务器缓存的意思就是Web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存

win7 64位系统 下的mysql 5.6 免安装版配置

1.下载官方zip包解压到本地目录 2.修改my.ini 文件 copy default.ini 并修改 [client] port=3306 default-character-set=utf8 #客户端字符类型,与服务端一致就行,建议utf8 [mysqld] port=3306 character_set_server=utf8 #服务端字符类型,建议utf8 basedir=D:\MySQL\MySQL Server 5.6 #解压根目录 datadir=C:\MySQL\MySQL S

linux系统中 修改oracle数据库字符集问题

今天在往linux系统下的oracle数据库中导入dmp数据库的数据的时候,出现一些问题,经过多次调整和尝试,最终将数据库调整好,特此记录. 首先,在导出本地的数据库的时候,由于本地的数据库中有建 dblink连接,在用exp命令导出数据的时候,命令行提示  大概  是连接失败的意思,但是看着又不像是数据库用户本身连接失败,经过百度查询知道是因为该用户下存在dblink连接,数据库服务器的版本(11.2.0.4.0 - 64bit)比我本地的客户端的版本(11.2.0.1.0- 64bit)高,