centos lnmp 集成环境安装oracle扩展

前期准备工作:

下载文件:

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

php扩展文件下载:

http://pecl.php.net/package/PDO_OCI  PDO_OCI-1.0.tgz  Oracle的PDO接口

http://pecl.php.net/package/oci8  oci8-2.0.8.tgz Oracle扩展

安装Oraclecient

技巧:

rpm -qpl 可以查看rpm包会在哪些路径安装文件

1.安装rpm包

rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

查看安装是否成功

rpm -qa | grep oracle     //查看oracle是否安装 

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/     //加入此行,保存退出
 
 

64位系统需要创建32位的软链接(这里可能是一个遗留bug,不然后面编译会出问题)

ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client  
ln -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
 
 
 
 

安装oci8

一切就绪,编译安装

tar -xvf oci8-2.0.8.tgz  
cd oci8-2.0.8
 
 
 
 
/usr/bin/phpize
 
 
 
 
./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
make
make install
 
 
 
 
记录该地   /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
 
 
找到php.ini 文件将   ; extension_dir = "ext"   改为  extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/" 目的是指向扩展目录
然后再里面加上扩展
 
 
extension=oci8.so
 
 
重启php边可看到oci8 扩展了
 
 
 
 

安装PDO_OCI

tar -xvf PDO_OCI-1.0.tgz
cd PDO_OCI-1.0
 
 
 
 

防止pdo_oci对oracle11支持不足(pdo_oci可能不支持oracle11g,需要做个软链接成作为oracle10版本才能编译过去):

ln -s /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1  
ln -s /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1
 
 
 
 

一切就绪,开始编译安装

/usr/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-oci=instantclient,/usr,10.2.0.1
make make install

编译的时候我还遇到了其他问题

pdo_oci.c:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘pdo_oci_functions’

在pdo_oci.c文件中

将 function_entry 改成 zend_function_entry
 
 
同上将
extension=pdo_oci.so 
写入php.ini
 
 
重启服务扩展便可加上。。
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/fenqing666/article/details/77968449
今日推荐