centos 安装 php pdo_oci 扩展(Oracle驱动)

1、安装Oracle InstantClient

我安装的版本是11.2。需要以下两个包,可从Oracle官方下载:
oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm
下载地址:http://www.oracle.com/technetwork/topics/linuxsoft-082809.html


#rpm -qpl 可以查看rpm包会在哪些路径安装文件
[root@localhost ~]# rpm -qpl oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
[root@localhost ~]# rpm -qpl oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm
Oracle InstantClient的安装路径是:/usr/lib/oracle/11.2/


#安装rpm包
[root@localhost ~]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
[root@localhost ~]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm


2、安装PDO_OCI
[root@localhost libs]# wget http://pear.php.net/get/oci8-1.4.5.tgz
[root@localhost libs]# tar zxvf ./PDO_OCI-1.0.tgz
[root@localhost libs]# cd PDO_OCI-1.0
#注意,这里做LINK是因为pdo_cli不支持oracle 11,为了骗过他继续编译,要手工处理一下。
[root@localhost PDO_OCI-1.0]#ln -s /usr/include/oracle/11.2/ /usr/include/oracle/10.2.0.1
[root@localhost PDO_OCI-1.0]#ln -s /usr/lib/oracle/11.2/ /usr/lib/oracle/10.2.0.1


#make配置,参考:./configure --help
[root@localhost PDO_OCI-1.0]# /usr/local/php/bin/phpize
[root@localhost PDO_OCI-1.0]#./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-oci=instantclient,/usr,10.2.0.1
[root@localhost PDO_OCI-1.0]# make
[root@localhost PDO_OCI-1.0]# make install


#增加PHP扩展
[root@localhost PDO_OCI-1.0]# gedit /usr/local/php/etc/php.ini
ADD:extension = "pdo_oci.so"


3、重启Nginx、PHP

[root@localhost PDO_OCI-1.0]# nginx -s stop
[root@localhost PDO_OCI-1.0]# nginx
[root@localhost PDO_OCI-1.0]#php-fpm

[root@localhost PDO_OCI-1.0]#kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`


4、Issues
Issue A:
[root@localhost PDO_OCI-1.0]# /usr/local/php/sbin/php-fpm -t
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/pdo_oci.so' - /opt/oracle/10g/lib/libnnz10.so: cannot restore segment prot after reloc: Permission denied in Unknown on line 0
[31-Dec-2011 16:38:12] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful


Why:

SeLinux作祟

HowTo:
比较完美的解决方式:

[root@localhost ~]# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /opt/oracle/10g/lib/libnnz10.so

Ref:重启apache时,libphp5.so cannot restore segment prot after reloc Permission denied

不完美的解决方式:关闭SeLinux,参考以下链接:

关闭SeLinux的方法

cannot restore segment prot after reloc: Permission denied


----

参考文章:

centos安装php oci8 pdo-oci

PHP Manual:Oracle Functions (PDO_OCI)

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值