# 卡系統遷移【海蘭州】
## 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分鐘左右進行切換恢復正常】