宝塔面板PHP7.2安装Oracle扩展,TP5连接Oracle数据库

第一部分 宝塔面板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