# 卡系统迁移【海兰州】
## 1.准备阶段
### **php环境:**
1、检查php版本:7.3 是否确认?
2、php扩展:seaslog、PDO、OCI 是否确认?
3、开机启动:是否设置?
4、session共享:是否测试?
具体配置内容如下:
```
session.save_handler = redis
session.save_path = "tcp://10.1.1.71:7379?auth=leStZqHD&prefix=redis_session_card"
```
4、php.ini: 生产测试期间错误模式是否开启?生产环境是否关闭?
5、启动
**root用户:**
启动命令:systemctl start php-fpm.service
关闭 systemctl stop php-fpm.service
重启命令 systemctl restart php-fpm.service
**业务账号:**
```
启动 /usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.conf
重启 kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
关掉 kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
```
6、安装目录: /usr/local/php
### **nginx环境:**
1、配置
开机项启动项: 是或否默认启动?
日志权限:是否正常写入?
nginx错误日志和nginx访问日志,日志的目录权限问题。
端口开启: 443 80 是否开启?
性能关键参数: 待整理
2、启动
ROOT账号:
启动:systemctl start nginx.service
关闭:systemctl stop nginx.service
重启:systemctl restart nginx.service
业务账号:
启动命令:/usr/local/nginx/sbin/nginx
关闭命令:/usr/local/nginx/sbin/nginx -s stop
重启命令:/usr/local/nginx/sbin/nginx -s reload
注意事项:nginx日志按照天进行切割?避免出现大文件日志,配置文件按照约定规范进行配置
## **oracle/mysql数据库:**
1、迁移时间:数据同步的需要多长时间?数据库连通性测试
2、数据库信息:houst、port、用户名、密码、实例名
3、启动配置:开启启动项设置 (**时间评估**)
注意事项:序列回复是否正确、内网端口修改(禁用默认1521端口)
## **redis配置:**
1、主备切换验证:
没有自动切换 只是备份,现阶段只用主服务器,从服务器做备份使用,数据同步。接下来可以把从服务器作为读服务器
2、密码正确性,防火墙设置是否允许指定端口访问,最大内存分配,持久化aof和rdb的配置情况,开机启动项设置,防止一块区域存放太多数据?
注意事项:已经修改默认端口
## **F5配置:**
1、vip: 两个VIP地址?
2、内网IP:4台虚拟机IP地址?
注意事项:内网IP如出现故障,F5是否具备流量切换
## **其他准备:**
1、文件服务器:迁移最新的线上的图片文件,设置好共享文件服务器 (**时间评估**)
2、日志服务器:日志可以集中备份,然后生成新的日志文件
3、定时任务明细: 也或者如守护进程之类的
```
nohup php cli.php home/Daemon/refresh & >/dev/null 2>&1
nohup php cli.php /Daemon/alignmentGiveTongBao & >/dev/null 2>&1
nohup php cli.php home/Daemon/alignmentGiveBalance & >/dev/null 2>&1
nohup php cli.php home/Daemon/alignmentReduceTongBao & >/dev/null 2>&1
nohup php cli.php home/Daemon/alignmentReduceBalance & >/dev/null 2>&1
```
4、其他::虚拟机的防火墙、ip地址设置
运维默认配置
注意事项:在做迁移之前做好所有应备份数据
## 2.迁移阶段
* 打包最新的线上的代码,部署到生产服务器,注意日志的文件不需要迁移【但需要做好备份】,图片等其他静态资源需要迁移,如遇到到大文件,可以将核心源码迁移在进行其他文件迁移
* 修改配置:修改配置文件中数据库和redis配置,并测试是否可用
* 设置权限:设置public和rutime的读写权限和软连到共享服务器。
* 任务:开启脚步任务和定时任务
* 核心业务测试:注册、充值、消费、结算、退款(含部分退款)
* 简单性能测试:如果同样的sql【通宝相关报表】,在新老换进行测试结果对比
* 检查:检查准备阶段文件是否正常写入
注意事项:日志文件如果被删除,是否能正常生成文件
## 3.验证阶段
* 每个服务器的单独访问的正确性。通过访问后台地址,查询nginx日志,php日志,应用系统日志
* 通过内网ip或vip访问后台地址是否正确,查询nginx日志,php日志,应用系统日志
* 通过外网ip地址访问验证
* 通过域名访问验证系统正确性,
* 其他业务系统对接的验证,pos机刷卡,通宝+,结算中心、一家app 相关测试,验证正确性【具体什么业务?】。
## 4.自动化部署设置
* 评估是否需要使用重新建立gitlab 同步最新的代码
* jenkins配置,便于后期代码上传
## 5.资源清单
**亿恩机房**
内网ip:10.1.1.35 10.1.1.36 10.1.1.45
php目录 /home/zzcard/zzcard
共享服务器:
1. 图片资源:/home/zzcard/images/IMAGES
2. 日志及其他静态资源:/home/zzcard/images/Public
数据库. ip:192.168.10.64 name:jycard 用户名 jycard 密码 jycard\_2018 端口 1521
Redis : 10.1.1.42 port 1989 pwd:Redisjyzz123
域名:[https://zz.9617777.com](https://zz.9617777.com)
内网地址:
外网地址:106.3.45.145
**景安机房**
内网服务器ip地址:10.1.1.33 10.1.1.34 10.1.1.35
内网ip地址:10.1.1.101 10.1.1.201
外网地址:122.114.33.72 1.198.7.132
代码部署地址:/home/jyzz/wwwroot/zzcard
域名:[https://zz.9617777.com](https://zz.9617777.com)
数据库:10.1.1.39 name:jycard 用户名 jycard 密码 **jycard\_2018** 端口:
redis:10.1.1.71 端口 7379 密码 leStZqHD
域名:[https://zz.9617777.com](https://zz.9617777.com/) 【阿里云进行全局流量负载,经测试任何一线路出现故障,5分钟左右报警,10分钟左右进行切换恢复正常】