第一部分 宝塔面板PHP7.2安装Oracle扩展
1.安装InstantClient
下载打包好的文件,或者到官网下载。(注意要下载basic和devel,用来编译oci和pdo_oci。我这里下载的是rpm,方便安装。我这里下载的是18.3)
将下载的文件放在/usr/lib/oracle/,然后运行命令安装. rpm -ivh /usr/lib/oracle/oracle-instantclient18.3-* 然后打开 /etc/profile vi /etc/profile
在文件底部增加(注意版本和文件路径)
export ORACLE_HOME=/usr/lib/oracle/18.3/client64 export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/18.3/client64/lib export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/include/oracle/18.3/client64 export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
添加后的样子
保存后在终端运行 source /etc/profile,让环境变量立即生效。
2.安装OCI8
这里要注意先将php7.1的配置项【禁用函数】中删除popen、readlink两个函数。然后终端中运行
pecl channel-update pecl.php.net /www/server/php/72/bin/pecl install oci8-2.2.0 --with-php-config=/www/server/php/72/bin/php-config # 执行过程中可能让输入,输入下 shared,instantclient,/usr/lib/oracle/18.3/client64/lib --with-php-config=/www/server/php/72/bin/php-config
3.安装PDO_OCI
因为版本问题不能使用pecl安装pdo_oci,所以自己编译。
下载php源码。将源码包中的压缩包中的ext/pdo_oci文件夹上传到/www/server/php/72/include/php/ext/。
然后将php.ini配置文件中[oci8]下面的oci8.privileged_connect,前面分号去掉,Off修改为On,后面的配置项自己依据实际情况去配置。然后保存重启或重载php服务。
然后终端运行
cd /www/server/php/72/include/php/ext/pdo_oci /www/server/php/72/bin/phpize ./configure --with-php-config=/www/server/php/72/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/18.3/client64/lib make && make install
4.PHP-FPM配置
编辑/www/server/php/72/etc/php-fpm.conf,将下面两行代码加进去。 env[LD_LIBRARY_PATH] = /usr/lib/oracle/18.3/client64/lib env[ORACLE_HOME] = /usr/lib/oracle/18.3/client64/lib
运行成功后,再到php.ini文件中检查是否有两个so,没有的话要记得添加。
#/www/server/php/72/etc/php.ini extension="oci8.so" extension="pdo_oci.so"
第二部分 TP5连接oracle(本来需要装东西,但是这里突然直接好使了??不管了)
database局部配置
// 数据库类型 'type' => 'oracle', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'ORCL', // 用户名 'username' => 'TEST', // 密码 'password' => 'test', // 端口 'hostport' => '1521',
原文链接:https://blog.csdn.net/pmlptf/article/details/126668688