centos下为php开oracle扩展
来源:互联网 发布:linux中chmod -r 777 编辑:程序博客网 时间:2024/05/17 22:19
一.准备工作
本机已有环境为PHP,apache,mysql,需要连oracle数据库,所以需要打开oracle扩展。我们需要做的工作有:安装oracle客户端、pdo_oci扩展、oci8扩展
二.文件下载
(1)oracle客户端rpm包下载地址
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
下载如下两个文件(下载文件需注册哦):
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)扩展文件下载,有两种方式,第一种是下载单独的扩展文件,一种是直接下载PHP源码,在ext文件夹中有对应的扩展文件夹,以下我们以第二种方式给大家介绍。
http://pecl.php.net/package/PDO_OCI PDO_OCI-1.0.tgz Oracle Call Interface driver for PDO
http://pecl.php.net/package/oci8 oci8-1.4.5.tgz Extension for Oracle Database,allows you to access Oracle databases
http://www.php.net/downloads.php 下载你本机对应版本的PHP
三.安装及配置oracle客户端
1.安装
#rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm#rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
以下几条rpm相关命令供参考:
rpm -qa | grep oracle //查看oracle是否安装rpm -qa //查看所有已安装的人rpm包rpm -e oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm //卸载已安装的rpm包rpm -ivh --force oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm //强制安装rpm包
2.配置
修改/etc/ld.so.conf 或在ld.so.conf.d文件夹下添加oracle-x86_64.conf文件,写入安装oracle客户端的lib路径:
#vi /etc/ld.so.conf/usr/lib/oracle/11.2/client64/lib/ //加入此行,保存退出或者echo '/usr/lib/oracle/11.2/client64/lib/' > /etc/ld.so.conf.d/oracle-x86_64.conf
64位系统需要创建32位的软链接(这里可能是一个遗留bug,不然后面编译会出问题)
ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/clientln -s /usr/include/oracle/11.2/client64 /usr/include/oracle/11.2/client
定义环境变量
vi etc/profile
加入以下几行
export ORACLE_HOME=/usr/lib/oracle/11.2/client64/ export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
命令行输入以下语句使环境配置立即生效
#source /etc/profile
四.安装pdo_oci模块
1.准备工作
防止pdo_oci对oracle11支持不足(pdo_oci可能不支持oracle11g,需要做个软链接成作为oracle10版本才能编译过去):
ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1
2.安装
进入对应的扩展文件夹,例如/php/ext/php_oci
然后开始安装
#phpize# ./configure --with-php-config=php-config --with-pdo-oci=instantclient,/usr,10.2.0.1#make && make install#ll /usr/lib64/php/modules/
可看到php_oci.so已在文件夹中
3.配置
有两种方法,其一,直接在php.ini中打开扩展,其二,在php.d文件夹中添加对应的ini文件及内容
#vi /etc/php.iniextension=pdo_oci.so //在php.ini中加入此行 或者直接在命令行输入echo 'extension=pdo_oci.so' > /etc/php.d/pdo_oci.ini
五.安装oci8模块
1.安装
进入对应的扩展文件夹,开始安装
phpize#./configure --with-php-config=php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib#make && make install#ll /usr/lib64/php/modules
可看到oci8.so已在文件夹中
2.配置
有两种方法,其一,直接在php.ini中打开扩展,其二,在php.d文件夹中添加对应的ini文件及内容
#vi /etc/php.iniextension=oci8.so //在php.ini中加入此行或者直接在命令行输入echo 'extension=oci8.so' > /etc/php.d/oci8.ini
最后重启apache即可。phpinfo()可看到,php_oci及oci8扩展均已成功开启
六.错误及解决方案
1.checking for oci.h... configure: error: I'm too dumb to figure out where the include dir is in your Instant Client install
解决方法:检查--with-oci8,--with-pdo-oci的路径是否正确
2.configure: error: Oracle Instant Client SDK header files not found
解决方法:是否是sdk文件未安装,即rmp文件名中包含devel的文件,确认是否安装成功。
如果确定已安装,可能是以下问题产生的,可能是你PHP的版本过低,我的PHP版本是PHP Version 5.1.6出现此问题之后,百思不得其解,各种查资料也找不到答案。
两个解决方案:
第一,将你的PHP版本升级,至少升到>=5.2.6
第二,我前面说过,可以自行去下载扩展文件,我下载了oci8 1.4.5之后安装成功。
- centos下为php开oracle扩展
- centos下为php开oracle扩展
- centos下为php开oracle扩展
- centos 下为PHP添加svn扩展
- centos 下为php添加mongodb扩展
- centos下为php添加gd扩展
- centos下为php添加pdo_mysql扩展
- 万网云翔主机centos系统下为PHP安装扩展memcache
- centos环境下为php安装扩展sysvmsg
- centos环境下为php安装sysvmsg扩展
- CentOS下为php安装memcached扩展模块
- centos下编译php扩展
- centos下编译php扩展
- centos系统为php安装memcached扩展
- centos中为php安装GnuPG扩展
- CentOS 下为已经编译好的php环境添加mysqli扩展
- centOS下配置php-json扩展
- centos下加php 的json扩展
- Hadoop Hello World
- Batis的返回值参数类型也有种:resultMap与resultClass
- C#和.NET基础知识——学习笔记(五)
- javascript放在head和body的区别
- spring SqlSessionFactoryBean创建SqlSessionFactory
- centos下为php开oracle扩展
- Windows Server 2012修改光驱盘符
- -webkit-min-device-pixel-ratio的常见值对照
- 北理工《Java程序设计》课程教学资源索引(2013版)——第21讲及Android第4讲发布
- JEECMS + FreeMarker学习
- 源码主要功用有如下2种作用
- c++ 虚函数 虚基类
- SPOJ 375. Query on a tree【树链剖分】
- Win7:防火墙关于端口设置 - 设置开放某个端口