因为公司某项目须要链接oracle数据库,该项目使用的开发语言为PHP,故须要对PHP进行扩展php
服务器:Centos7linux
PHP:7.2, 源码安装;安装路径:/usr/local/xxx/php-7.2数据库
下载oracle所需客户端,我这里使用的是zip包.vim
下载地址bash
下载后存放到某路径下,我这里为/data/soft目录下服务器
注意,php7版本的某些扩展已经集合到php的源码中,咱们能够直接对php的源码进行从新编译,而不须要再下载所谓的其余软件包php7
若是php在安装完后删除了,须要去官网找寻对应的版本下载并解压,我这里用的是7.2.11的oracle
解压instantclient-basic-linux.x64-12.2.0.1.0.zip,并移动到/usr/lib/目录下php-fpm
unzip instantclient-basic-linux.x64-12.2.0.1.0.zip mv instantclient_12_2/ /usr/lib
解压instantclient-sdk-linux.x64-12.2.0.1.0.zip,将解压后的instantclient_12_2目录下sdk目录移动到/usr/lib/instantclient_12_2/下spa
unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip cp -rf instantclient_12_2/sdk/ /usr/lib/instantclient_12_2/
vim ~/.bash_profile
export ORACLE_HOME=/usr/lib/instantclient_12_2 export LD_LIBRARY_PATH=/usr/lib/instantclient_12_2 export PATH=$ORACLE_HOME:$LD_LIBRARY_PATH:$PATH
source ~/.bash_profile //查看环境变量,检验配置是否正确 echo $PATH
进入oracle目录
cd /usr/lib/instantclient_12_2 ln -s libclntsh.so.12.1 libclntsh.so ln -s libclntshcore.so.12.1 libclntshcore.so 注意 libclntsh.so.12.1 根据下载版本不一样而不一样。如在 Oracle11.* 的版本则为 libclntsh.so.11.1。 并且该连接必须配置,不然在如下的 configure 配置步骤将会报错而致使配置失败。
cd /data/soft/php-7.2.11/ext/oci8 //执行phpize /usr/local/xxx/php-7.2/bin/phpize //生成configure文件后执行configure ./configure --with-php-config=/usr/local/xxx/php-7.2/bin/php-config --with-oci8=shared,instantclient,/usr/lib/instantclient_12_2 //编辑过程当中若是有问题就解决问题,若是没有继续执行 make && make install
将生成的oci8.so 添加到php.ini
vim /usr/local/xxx/php-7.2/lib/php.ini
systemctl restart php-fpm7
/usr/local/xxx/php-7.2/bin/php -m
报错信息以下 libaio.so.1: cannot open shared object file: No such file or director 解决 yum install libaio /usr/local/xxx/php-7.2.11/bin/pecl install oci8 以后输入以下安装便可. instantclient,/usr/lib/instantclient_12_2/ 而后重启php
cd /data/soft/php-7.2.11/ext/pdo_oci //执行phpize /usr/local/xxx/php-7.2/bin/phpize //生成configure文件后执行configure ./configure --with-php-config=/usr/local/xxx/php-7.2/bin/php-config --with-pdo-oci=instantclient,/usr/lib/instantclient_12_2 //编辑过程当中若是有问题就解决问题,若是没有继续执行 make && make install
将生成的pdo_oci.so 添加到php.ini
vim /usr/local/xxx/php-7.2/lib/php.ini
systemctl restart php-fpm7
/usr/local/xxx/php-7.2/bin/php -m
在进行php扩展的过程当中,走了不少的坑,前先后后忙活了大约一天多的时间,总算是处理好了.
前期看各类博客,发现不少是相似的,都没法实现.上面说有用rpm,有用zip包的,
也有使用的版本为11.2的,也有12.2的.通过本身不断的摸索,加上网上的文章
后来终于使用12.2版本的zip包安装上了.