前言:这次装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