redhat 下编译 oci8 和 pdo_oci

来源:互联网 发布:java物流项目管理系统 编辑:程序博客网 时间:2024/05/16 05:25

                       最近由于工作的需要,需要在redhat 下编译php oci8 和 pdo_oci 的扩展,此类文章在网上有很多 但很少有很详细的介绍,故便有了此文。

                 首先假设机器上已经安装了php ,和相关的编译环境( 若你还不知怎么安装这些请google ) 。 

                 第一步我们要准备几个安装包,在http://www.oracle.com/technetwork/topics/linuxsoft-082809.html 下载  oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm 和  oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm 这两个包是oracle 即时客户端的包和sdk的包 , 接着我们需要到 http://pecl.php.net 上下载 oci8 和 pdo_oci 源码包 目前最新的源码包是 oci8-1.4.7.tgz  和 PDO_OCI-1.0.tgz 

              我个人的习惯是将这些包放在/usr/local/src 目录下(这个根据你个人习惯和喜好而定)接着先安装instantclient 和 sdk 命令如下

             #cd /usr/local/src

             # rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

                      # rpm -ivh   oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm

                        然后解压oci8 和 pdo_oci 源码包

                       # tar -zxvf oci8-1.4.7.tgz 

                       # tar -zxvf pdo_oci-1.0.tgz

                 首先编译oci8

                 #cd oci8-1.4.7

                 #/path/to/phpize               (/path/to/phpize 是到phpize 命令的路径)

                 #./configure --with-php-config=/path/to/php-config ( /path/to/php-config 是到php-config 命令的路径 )

                 #make && make install

                若安装成功则在php.ini(php 配置文件)中加入extension=oci8  然后使用php -m 查看oci8 模块是否正常加载


                 接着编译pdo_oci 

                #cd PDO_OCI-1.0

                #/path/to/phpize               (/path/to/phpize 是到phpize 命令的路径)

               在编译之前我们需要做两个软链接

               # ln -s /usr/lib/oracle/11.2  /usr/lib/oracle/10.2

               # ln -s /usr/include/oracle/11.2  /usr/lib/oracle/10.2   ( 11.2 这个是我下instantclient11.2 这个版本号 若你下不是这个版本则改成你下载的对应的版本号)

                只所以做这两个软链接是因为目前pdo_oci 还不支持oracle 11 版本,为此我们采用了这种方式

             接着如下编译

             #./configure --with-php-config=/path/to/php-config --with-pdo-oci=instantclient,/usr ,10.2 

             上面的命令中  /path/to/php-config 是到php-config 命令的路径 ,--with-pdo-oci=instantclient,/usr/,10.2 对应为--with-pdo-oci=instantclaint,prefix,版本号  其中10.2 就是上面做软链接的 10.2 是对应关系 具体的说明用户可以通过./configure --help 查看

            #make && make install 

            如安装成功 则在php.ini 中加入 extension=pdo_oci 然后使用php -m 查看pdo_oci 模块是否加载正常

            如果你的php是通过rpm 包安装的以上的--with-php-config 可以省去,phpize 命令也可直接使用, 而不需要写/path/to/phpize( 完整的路劲引用) 。

            根据我个人实验 以上编译中未出现任何问题,由于本人水平有限 若你在部署这样的环境中遇到问题还望反馈,若有写的不正确的地方还望斧正。也欢迎你和我交流 dormancy.jt@gmail.com 

            GOOD LUCK 

            


               


原创粉丝点击