伺服器轉移的時機點包括了:
- 更換系統(e.g. centOS -> Debian)
- 更換主機商
- 主機需求迫不得已需要轉移
各種各樣的問題,而如果不是使用 panel,或是沒有提供/規劃快速轉移的服務的話,這邊列一個轉移前後需要檢查的點,目前以 LEMP 環境,帶一些常用的服務/語言為主:
- 有上 git 的檔案
- 如果不要完整備份,是否有備份 config, uploads, logs, writeable 等 ignore 的檔案?
- 如果要完整備份,是否有把 .git 檔案包含在其中?
- 全部檔案
- 除了 document root 資料夾之外,有沒有外部/連結/其他服務所使用到的資料夾?
- Compose 等是否需要重新 build?
- 網站設定/環境
- 程式本身使用到哪些服務/設定: user.ini, .htaccess 等等
- 其他環境使用到哪些服務/設定:Node.js, python, Memcached, Redis 等等。
- GIT 使用的 private key 是否可重複使用,或是需要重新申請。
- PHP 使用的版本、擴充套件、啟用的套件、環境設定等。
- Nginx 的 vhost 設定,包含 log 路徑位置等;Apache 設定。
- SSL 的證書,其他服務可能使用到的憑證等。
- DNS 設定是否需要更動。
- FTP 的用戶、密碼與路徑(如果有用的話)
- Docker 的 image, compose, container 或是 dockerFile 等(如果有的話)
- IP 防火牆設定,請注意主機商或主機內都有機會設定。
- MySQL/MariaDB 或是其他資料庫服務等備份,請注意用戶權限,建議是備份成為 .sql 檔案,參考備份的 shell Script。
- Cron 中對於網站的設定,注意除了網址呼叫之外,是否有針對路徑的呼叫?路徑是否有改變。
- Linux 的安全設定,包含是否有 ip 限制 SSH 連線、VPS 的設定等等以及驗證。
- Email 的設定,如果新的 server 不支援 email 設定的話可能得把這塊移轉到其他伺服器/服務商上面。
- 其他服務串接:包含了可能串接對方服務會有 ip 驗證或是作為 server 端, client 呼叫可能會產生的問題(例如設計上直接呼叫 ip)等。
寫一寫發現有點多,主要還是怕避免落人口舌就越寫越多,肯定是還有遺漏的,畢竟我不是專職做系統工程師的角色,而伺服器鬼故事很多,天知道配合的 SE 是哪方天神。愛惜自己的肝,請從良好的配置習慣開始。
- 培養資料管理的態度和原則,一開始分類、整理好,以後採雷少。
- 建立一個關於自己技術成長的規則,避免自己被自己搞死
- 例如我會利用每一台伺服器來做分類,舊的伺服器會遵循同一個資料管理的方法並且適時的更新,等於是對自己的技術作版本管理。
- 如果是接別人的 server/code ,除非自己能夠重構或是改好,要不遵守對方的規則為上策。等於是做一個版本的 branch 。
- 萬一很複雜(而且沒有管理系統),做文件是好的。
- 如果查看修改的頻率不高,做文件是好的。
- 最好的管理是給使用者自主管理,讓使用者有意識到那是他的東西,讓他懂得維護的方法。
- 當然要做好期待管理以及費用的問題。通常使用者就是客戶。
以上。