美文网首页
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