美文网首页
Centos7下安装php7扩展oracle服务的填坑之路

Centos7下安装php7扩展oracle服务的填坑之路

作者: 江江简书 | 来源:发表于2020-03-24 20:45 被阅读0次

    前言:这次装oracle让我记忆尤新,从到放弃到无意间的成功,真让我觉得oracle啊你怎么就那么不友好咧,最后还是成功了

    检测安装

    rpm -qa | grep oracle //检测是否安装了oracle

    oracle地址

    社区账号密码

    Oracle帐号:2696671285@qq.com
    Oracle密码:Oracle123

    安装的版本

    • oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm
    • oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm

    安装方法

    • rpm -i oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm
    • rpm -i oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm

    添加软链接

    • ln /usr/lib/oracle/11.2 /usr/lib/oracle/10.2.0.1
    • ln /usr/include/oracle/11.2 /usr/include/oracle/10.2.0.1
      *如果不能创建需要加上参数 ln -s

    添加环境变量(vi /etc/profile)

    • export ORACLE_HOME=/usr/lib/oracle/11.2/client64
    • export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    • export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
    • source /etc/profile //重启生效

    校验是否安装成功oracle

    • rpm -qa | grep oracle

    此时要装pdo_oci和coi8坑要来了

    • 首先如果你的lamp是通过yum安装的那么不幸的告诉你,你可能会出错,那怕是成功了phpinfo也没有相应的开启成功的信息
    • 因此你要想办法拿到源码ext下面的oci和pdo_oci否则你就可能像我一样各种错各种放弃的想法

    安装的相关命令

    • phpize

    • ./configure --with-php-config=/usr/local/php/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib //oci8的文件

    • ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-oci=instantclient,/usr,10.2.0.1 //pdo_oci

    • make && make install

    到这里你以为就完了了嘛,别忘记了你用的是Tp

    • SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-12521: TNS:listener does not currently know of instance requested in connect descriptor
      (/root/pdo_oci/oci_driver.c:640)

    • 参考文章1改之

    • thinkphp\library\think\db\connector\Oracle.php

    • 修改

    protected function parseDsn($config)
        {
            $dsn = 'oci:dbname=';
            if (!empty($config['hostname'])) {
                //  Oracle Instant Client
                $dsn .= '//' . $config['hostname'];
    //                    ? ':' . $config['hostport'] : '' );
    //        }
    //        $dsn .= $config['database'];
    //        if (!empty($config['charset'])) {
    //            $dsn .= ';charset=' . $config['charset'];
    //        }
    //            halt($dsn);
                return $dsn;
            }
        }
    
    

    结束

    到此,你可能会发现一路下来真是不容易,但是坚信不放弃会找到答案的,还有一点需要注意不要装太多不同版本,否则环境都乱了就更麻烦了

    参考文章1:https://blog.csdn.net/wq57885/article/details/82929439
    参考文章2:https://www.cnblogs.com/lalalagq/p/9980081.html

    相关文章

      网友评论

          本文标题:Centos7下安装php7扩展oracle服务的填坑之路

          本文链接:https://www.haomeiwen.com/subject/tqonyhtx.html