最近客户要升级服务器,该服务器上有一个5、6年前的系统,运行环境是php5.4 apache2.2 oracle11g,一开始没考虑迁移过程会这么复杂,用了大约4天的时间将前后都跑通了,基本上能遇到的坑都遇到了,现在整理一下这个过程。
基本思路:
导入提供的SQL 确定 ORACLE可用
配置 php5.6 和 12c 的 链接,确定 PHP 和 oci 直接是可以链接的
将程序配置好, 配置好数据库链接, 来确定程序是好用的.
测试程序, 程序没有问题则整理结束.
如果确定 程序在 5.6和12C 下运行不正常, 尝试更换为 11g, 采用原来的配置 php5.4
旧服务器环境:
windows server 2008(X64) Apache2.2(X86) PHP5.4(X86) oracle11g(X86)
新服务器环境:
windows server 2016 oracle12c(X64)
为啥我要明确他们是64 还是 32 ,这是个坑。
64位oracle 需要 64位php 版本要对应,一定要注意这一点!!!大部分问题都是在这里!!!
5.4连不上12C 放弃吧!!! 要不然就去弄11g, 和下面流程一样!!
https://stackoverflow.com/questions/32779022/oracle-12c-php-5-6-13-win32-cannot-load-php-pdo-oci-dll
https://blogs.oracle.com/opal/using-php-oci8-with-32-bit-php-on-windows-64-bit
开始讲流程:
搞上VMVare 虚拟机模拟环境,因为前期一直在通过 teamviwer 远程操作,被判定商业用途,不让用了,于是本地模拟一套,更顺畅也更方便。
https://my.vmware.com/cn/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0
环境: windows server 2016
https://pan.baidu.com/s/1Rij8JNEQAzWmYMLOKIK6MA [提取码biav]
windows server 2016激活:
https://blog.csdn.net/pcmagic5328/article/details/80098259
搞一下oracle12c
安装 oracle12c
https://www.cnblogs.com/soraka/p/5855724.html
第一步按照教程走的, 创建数据库报了一些错, 类似检查目录用户权限的一些问题, 于是卸载了相关程序, 重新安装. 我在这一步 选择仅安装数据库软件, 后边自行创建数据库
创建数据库
https://blog.csdn.net/sunxiaoju/article/details/78891091
卸载 oracle12c
https://blog.csdn.net/since_1904/article/details/70176445
安装PHP5.6 64位 apache2.4 64位!!!! 因为5.4不知道为啥连不上 12c,我试了一天没跑通,果断放弃, 升5.6. 相应的apache也得升。
安装VC9 VC11 库 必须的库, 还需要一个VC12 这里面没有, 自行寻找吧
https://www.fujieace.com/jingyan/vc11-vc14-vc15.html
64位 PHP5.6 apache2.4 安装
https://blog.csdn.net/zhangtao0417/article/details/81534227
64位 PHP下载地址
https://windows.php.net/download#x64
Instant Client 下载 , 这玩意必需品
Lists: https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html
win 64: https://www.oracle.com/technetwork/cn/topics/winx64soft-101515-zhs.html
做完记得加入Path,用户 和全局 都要
将PHP5.6 oci8 打开
看一下 phpInfo();
一定要到 OCI8 这个扩展, 否则后边走不通.
至此, 完事, 后边是记录的一些问题.
监听服务消失:
https://zhidao.baidu.com/question/128469300.html
状态: 失败 -测试失败: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
https://blog.csdn.net/hhw999/article/details/52516685
oci_connect(): ORA-12170: TNS 解决办法:
https://blog.csdn.net/weixin_41648325/article/details/81076589
Listener refused the connection with the following error 错误解决 ????
https://www.cnblogs.com/qisel/p/4048415.html
PHP 文件包TNS超时一类的错, 我将 tar?.ora 这个文件里的host 改成了 127.0.0.1 然后sql developer 登录不上, 删除了Listerner , net manager重建 lisrener, 还是不好使, 综合考虑 卸载 oracle 重新安装, 卸载过程奇慢无比,