当前位置:首页 > PHP教程 > php环境安装 > 列表

PHP安装ORACLE扩展(oic8安装教程)

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-14 16:39:19 浏览: 评论:0 

PHP安装ORACLE扩展的方法比较复杂了,下文本文章就为各位介绍PHP安装ORACLE扩展(oic8安装教程),如果有需要了解ORACLE扩展安装方法的话我们就一起和小编来看看.

本文主要叙述,php环境与oracle数据库不在同一台服务器上时,php环境的安装编译.

按照官方说明文档 http://cn2.php.net/manual/zh/oci8.installation.php,编译php的时候要加上这个参数–with-oci8,但是加这个参数有个前提,就是必须要安装了对应的库文件.

安装库文件有两种方法:

一.你的php环境和oracle在同一台服务器上(通常oracle都很大,这方法不合适)

二.在你的php服务器上安装 Oracle Instant Client libraries.(这个方法适合php与oracle不在一个服务器上)

1.针对自己的系统下载适合的Instant Client packages安装包,其中安装包都需要Basic或者Basic Lite包(根据本链接选择一个系统平台,然后进去下载对应的Basic或者SDK等等包)

这里我下载了三个zip的包,分别是:

  1. Instant Client Package – Basic 
  2. Instant Client Package – SQL*Plus 
  3. Instant Client Package – SDK 

2. 解压包到一个单独的目录,比如 “instantclient”.(我把上述三个包放到一起,然后放到了/usr/local/instantclient)

3.在环境变量里设置库的加载路径,路径为第二部设置的路径”instantclient”,多数UNIX平台环境变量设置LD_LIBRARY_PATH,而Windows系统应该用PATH.

4.可以开始你的应用了

加载库(上述第3步骤,环境变量)

上述所述的库,需要加载到linux系统才可以,那怎么加载呢.

方法一:编辑 /etc/ld.so.conf,在里面加入一行库文件路径/usr/local/instantclient(根据实际情况而定)

注意:centos的/etc/ld.so.conf文件里是用include包含加载了/etc/ld.so.conf.d/*.conf所有文件,所以我们可以创建一个文件/etc/ld.so.conf.d/oracle.conf,在里面加入一行库文件路径/usr/local/instantclient(根据实际情况而定),而不是直接编辑/etc/ld.so.conf文件.

方法二:设置Linux系统设置环境变量,代码如下:

vim ~/.bashrc

最后一行加入如下代码:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/instantclient

此处根据实际情况修改,因为上述第二步的instantclient位置放到了/usr/local/instantclient

编译PHP:如果是编译安装php则需要加上 –with-oci8参数,因为我把Instant Client packages放在了/usr/local/instantclient

所以–with-oci8参数可以这样写,代码如下:

–with-oci8=shared,instantclient,/usr/local/instantclient

php实例编译如下:

  1. ./configure --prefix=/usr/local/php-5.3 --with-config-file-path=/usr/local/php-5.3/etc --with-config-file-scan-dir=/usr/local/php-5.3/etc/php.d --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-openssl --enable-soap --enable-safe-mode --enable-zip --with-oci8=shared,instantclient,/usr/local/instantclient 

php官方实例,这样写的./configure –with-oci8=shared,instantclient,/usr/lib/oracle//client/lib

编译时如提示找不到libclntsh.so,可以加个软链,代码如下:

  1. ln -s /usr/local/instantclient/libclntsh.so.12.1 /usr/local/instantclient/libclntsh.so 

安装oci8拓展,使用php的pecl安装拓展,代码如下:

./pecl install oci8

在提示输入,Instant Client packages库的路径时候录入实际路径,此处录入:

  1. shared,instantclient,/usr/local/instantclient 
  2.  
  3. [root@localhost bin]# ./pecl install oci8 
  4. downloading oci8-2.0.8.tgz ... 
  5. Starting to download oci8-2.0.8.tgz (190,854 bytes) 
  6. .........................................done: 190,854 bytes 
  7. 11 source files, building 
  8. WARNING: php_bin /usr/local/php-5.3/bin/php appears to have a suffix -5.3/bin/php, but config variable php_suffix does not match 
  9. running: phpize  //开源软件:phpfensi.com 
  10. Configuring for
  11. PHP Api Version:         20090626 
  12. Zend Module Api No:      20090626 
  13. Zend Extension Api No:   220090626 
  14. Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] : shared,instantclient,/usr/local/instantclient 

最后把oci8加入php.ini如下代码:extension=oci8.so

Tags: PHP安装 ORACLE扩展 oic8安装

分享到: