PHP 使用 Oracle 数据库的准备工作

系统 : Linux Centos 7.0

前言:想让PHP可以操作Oracle数据库,那绝对是需要安装关于Oracle扩展。php的Oracle扩展叫oci

oracle扩展包下载地址: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

网页上会显示如下的下载列表:

Download Oracle Database 10g Instant Client for Microsoft Windows (32-bit)

Download Oracle Database 10g Instant Client for Microsoft Windows 64-bit Itanium

Download Oracle Database 10g Instant Client for Microsoft Windows (x64)

Download Oracle Database 10g Instant Client for Linux x86

Download Oracle Database 10g Instant Client for Linux x86-64

Download Oracle Database 10g Instant Client for Linux Itanium …

如系统是32位则选择第4个,64位选择第5个。

选择错误会造成make php oci8的时候报兼容失败。

下面是64位系统的演示。

第一步:安装oracle

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

rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

说明:oracle包版本要与oci8包版本兼容,php官网给出的参考文字是

Use the OCI8 extension to access Oracle Database. The extension can be linked with Oracle client libraries from Oracle Database 10.2, 11, or 12.1. These libraries are found in the database installation, or in the free Oracle Instant Client available from Oracle. Oracle’s standard cross-version connectivity applies. For example, PHP OCI8 linked with Instant Client 11.2 can connect to Oracle Database 9.2 onward. See Oracle’s note “Oracle Client / Server Interoperability Support” (ID 207303.1) for details. PHP OCI8 2.0 can be built with PHP 5.2 onward. Use the older PHP OCI8 1.4.10 when using PHP 4.3.9 through to PHP 5.1.x, or when only Oracle Database 9.2 client libraries are available.

官网的意思是在安装oci8的时候要保证 oracle扩展+oci8+php版本 要达成一致,否则就会出问题。 – – 英文不好大概就这个意思吧。

第二步:下载php oci扩展

安装oci8扩展 下载地址:http://pecl.php.net/package/oci8

我的php版本是5.5.4的依照官网的描述我选择的是 oci8-2.0.0.tgz 包.

tar zxvf oci8-2.0.0.tgz

cd oci8-2.0.0.tgz

/usr/bin/phpize

./configure --with-php-config=/usr/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib

make

make install

说明:

1.oci8-2.0.0.tgz这个是单独的扩展包,也可以下载完整的php安装包,如php-5.5.28.tar.gz,解压后,cd到ext目录下的oci8目录即可。

2.phpize和php-config都不一定在上面的路径中,因为安装lamp环境的方法每个人不尽相同,可以用which命令查找,如which phpize。

3.关键点是要保证phpize,php-config,以及oracle的安装路径要正确

第三步:配置 php.ini

其实大部分时候是不需要第三步的,系统会默认把扩展加上

可以用find命令找到这个文件,找到类似extension = “”的配置项,加一行extension = “oci8.so” 说明:经过第二步的make,makeinstall后会生成一个oci8.so文件,可以用find命令查找一下路径,extentsion=”oci8.so”要结合extention_dir=”/usr/lib/php/modules” 这个配置项来看,这两句的意思就是在/usr/lib/php/modules下找oci8.so扩展,换句话说就是如果你的oci8扩展不是生成在/usr/lib/php/modules目录下,那么你就要改动extention_dir以确保oci8.so的路径是正确的

上面步骤完成后,重启代理服务。PHPINFO() 查看下。是不是已经成功了?!

最后修改:1年前 2017-07-27

© 著作权归作者所有

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

ubuntu: scp指令 (远程拷贝)

用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。当你服务器硬盘变为只读 read...

35220
来自专栏增长技术

Eclipse工程导入到Android Studio

25110
来自专栏主机笔记

windows2012服务器搭建mongodb并设置远程访问

因为python脚本需要用到mongodb,而且需要本地查看数据库,所以就在腾讯云的windows服务器上部署了mongodb服务器,因为网上大部分教程是针对l...

55690
来自专栏iOSDevLog

在Mac OS X上安装Python 3并使用virtualenv和virtualenvwrapper

这篇文章解释了如何在Mac OS X中安装Python 3,包括Mavericks和Yosemite。如果要清理安装Python 2.7,请查看此帖子。你也可以...

30110
来自专栏三杯水

Centos7.4部署配置Elasticsearch6.3.2集群

https://www.elastic.co/guide/cn/elasticsearch/guide/current/important-configurat...

37030
来自专栏乐百川的学习频道

用winsw让任何Windows程序都能运行为服务

winsw介绍 有时候我们需要在Windows下开机运行某些程序,这对于有图形界面的程序来说一般不是什么事,在选项中选中开机启动,然后它们就可以自动运行了。但是...

377100
来自专栏破晓之歌

在PythonAnyWhere上部署Django项目

在PAW(PythonAnyWhere)上创建免费beginner账户,网址为: https://www.pythonanywhere.com/pricing...

16920
来自专栏程序员叨叨叨

听说你PHP配置Composer遇到了一些困境

最近在写PHP通信接口,涉及到数据库CRUD操作时,觉得PHP原生方法每次都要写SQL语句,效率不高,于是尝试使用Propel orm框架,此文记录PHP配置P...

9130
来自专栏埋名

CentOS7安装维护Gitlab

下面是官网复制过来的官方安装方法,最简单的安装,在我大天朝,只能望天兴叹,你可翻墙安装或者略过这里,看下面的。

66830
来自专栏猿人谷

mac下使用github

      提起github相信大家都不会陌生,在这里就不再赘述了。作为开源代码库以及版本控制系统,使用好了确实会非常受益,再说的势利点,你找工作时给面试官说你...

21250

扫码关注云+社区

领取腾讯云代金券