Linux下安装oracle客户端并配置php5.3

2015-01-24信息快讯网

这篇文章主要介绍了Linux下安装oracle客户端并配置php5.3,需要的朋友可以参考下

因项目需要在linux下进行php5.3的oracle客户端编译,简要介绍一下步骤及走过的弯路。

1.下载Oracle客户端程序包,其中包含OCI、OCCI和JDBC-OCI等相关文件。

1.1下载文件地址

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
根据操作系统的版本选择对应的软件,我需要的是X86_64选择
Instant Client for Linux x86-64

1.2需要下载的文件如下:

oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm

需要强调的一点是这里需要注册一个oracle的账户才能正常下载。

2.安装Oracle客户端程序包。

将程序包上传到服务器指定目录里

chmod +x *.rpm
#给RPM包赋执行权限 
rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
#安装RPM包 
echo "/usr/lib/oracle/11.1/client64/lib/" > /etc/ld.so.conf.d/oracle_client.conf
#将库路径加到默认加载中 
/sbin/ldconfig
#重新加载动态链接库

3.安装OCI8的php扩展(这里指定php的安装路径为/usr/local/webserver/php)

yum install libaio
#yum安装libaio库,libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高
wget http://pecl.php.net/get/oci8-1.4.10.tgz
#下载OCI扩展
tar zxvf oci8-1.4.10.tgz
#解压
cd oci8-1.4.10 
/usr/local/webserver/php/bin/phpize CFLAGS="-I/usr/lib/oracle/11.1/client64" CXXFLAGS="-I/usr/lib/oracle/11.1/client64"
#使用phpize准备 PHP 外挂模块的编译环境,会根据指定的环境变量生成编译时需要的makefile,phpize是属于php-devel的内容,所以centos下只要运行yum install php-devel进行安装即可
./configure Cwith-php-config=/usr/local/webserver/php/bin/php-config Cwith-oci8=/usr/lib/oracle/11.1/client64 
make 
make install
#编译,安装

需要强调的是make的时候会报错,显示各种找不到库文件,需要对makefile文件进行修改加入oralce的运行库地址
打开makefile,寻找INCLUDE,形式如下:
INCLUDES = -I/usr/local/php/include/php -I/usr/include/oracle/10.2.0.3/client
然后在末尾加上="-I/usr/lib/oracle/11.1/client64,然后重新make就会成功了。

4.修改PHP.ini(/usr/local/webserver/php/etc/php.ini)

在extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"后增加一行:

extension = "oci8.so"

5.重启apache让OCI生效

6.在web目录下创建phpinfo.php文件在其中输入一下内容,并通过web访问

<?php
phpinfo();
?>

如果找到OCI8的部分就说明OCI安装正常了,如下图所示

Linux下安装oracle客户端并配置php5.3_信息快讯网

接下来就能通过php访问oracle数据库了,需要注意的是php下Oracle的连接字符串

<?php
$username='***'; 
$passwd='***'; 
$protocol='TCP'; 
$SERVICE_NAME='***'; 
$ORACLE_SERVER_IP_ADDRESS='***.***.***.***'; 
$Port='1521′;
$db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = $protocol)(HOST = $ORACLE_SERVER_IP_ADDRESS)(PORT = $Port)))(CONNECT_DATA=(SID=$SERVICE_NAME)))"; 
$conn = oci_connect($username,$passwd, $db); 
PutEnv("NLS_LANG=SIMPLIFIED CHINESE_CHINA.AL32UTF8"); 
if (!$conn) {
    $e = oci_error(); 
    print htmlentities($e['message']); 
    exit; 
}else { 
    echo "连接oracle成功!"; 
    return $conn; 
}
?>

php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
将FCKeditor导入PHP+SMARTY的实现方法
php正则匹配html中带class的div并选取其中内容的方法
linux中cd命令使用详解
php计划任务之ignore_user_abort函数实现方法
php模仿asp Application对象在线人数统计实现方法
php实现Linux服务器木马排查及加固功能
php连接oracle数据库及查询数据的方法
php+mysqli实现批量替换数据库表前缀的方法
VPS中使用LNMP安装WordPress教程
PHP中require和include路径问题详解
腾讯微博提示missing parameter errorcode 102 错误的解决方法
thinkphp文件处理类Dir.class.php的用法分析
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
ThinkPHP表单自动验证实例
PHP依赖倒置(Dependency Injection)代码实例
php实现设计模式中的单例模式详解
PHP实现设计模式中的抽象工厂模式详解
php中字符集转换iconv函数使用总结
PHP生成网站桌面快捷方式代码分享
在win7中搭建Linux+PHP 开发环境
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
安装ImageMagick出现error while loading shared libraries的解决方法
php实现的click captcha点击验证码类实例
PHP实现自动登入google play下载app report的方法
php中unserialize返回false的解决方法
MyEclipse常用配置图文教程
PHP下的Oracle客户端扩展(OCI8)安装教程
Linux下PHP连接Oracle数据库
Win7 64位系统下PHP连接Oracle数据库
©2014-2024 dbsqp.com