VPS遷移日誌

上個週末得閒把VPS從之前的RamNode遷移到了Amazon Lightsail,主要遷移的內容就是WordPress,涉及到MySQL的導出和導入、Nginx的配置、PHP的配置(從5.6升級到了7.3)、CentOS的簡單設置(從6升級到了7)、Let’s Encrypt SSL證書的配置。下面簡單記載一下遷移的梗概以便有需要的訪客和自己今後查閱。

Amazon Lightsail在我看來是個很好的買賣,$3.5美金的月供可以有512MB的內存和一個CPU核、20GB的磁碟、1TB的傳輸量。而且基礎設施是在Amazon EC2之上,可選的網路節點是非常豐富的。雖然居住在英國,但是考慮到大量訪客是來自中文圈,所以我把節點選在了德國Frankfurt。題外話,日本東京的節點也是最低$3.5的月供,非常划算,比很多雲服務商都實在(東亞節點一般都比較貴)。創建了新實例之後,記得先分配一個靜態的公網IP位址(Amazon Lightsail暫不支援IPv6)!

先說說MySQL的遷移吧。SSH進入VPS,配置好yum的repository(EPEL和REMI),安裝上PHP 7(不要忘了php-fpm)、Nginx、Maria DB (MySQL)、phpMyAdmin。這一步做好之後,配置Nginx,改變默認路徑到Apache常用的 /var/www/html (這個是個人習慣,你也可以用不同的路徑),設定php-fpm以協同工作處理php文件(最大上載文件大小默認只有2MB,建議更改php-fpm的配置檔案),做一個軟連接到/usr/share/phpMyAdmin。CentOS 7使用systemd,所以用systemctl start nginx啟動Nginx,systemctl enable nginx啟用Nginx(開機服務自動啟動),同樣的啟動和啟用php-fpm,驗證php可以工作。這一步做好之後,初始化配置Maria DB設定好全局用戶和密碼(root),訪問機器的phpMyAdmin核查。到了這一步,新VPS機器的數據庫環境是基本搭建好了,在舊機器上設定好phpMyAdmin選擇Export導出數據庫,在新機器上Import導入數據庫,並新增一個數據庫用戶專用於WordPress數據庫的存取和錄入(可以沿用舊機器上同樣的用戶密碼)。

現在可以把phpMyAdmin的軟連接移除以切斷外界對數據庫的遠端維護。SSH進入舊VPS,把整個WordPress所在的目錄打包壓縮(tar然後xz),scp拷貝到宿主機器再scp上載到新VPS。SSH進入新VPS,解壓並移動WordPress到/var/www/html下,你可能需要chown apache:apache -R更改解壓的WordPress的用戶和組,否則PHP將無法寫入到該目錄。配置Nginx使WordPress能夠被訪問,重啟Nginx服務測試WordPress的連接性(使用http,我們尚未配置SSL)。

現在我們可以遷移Let’s Encrypt SSL證書了,我嘗試了打包舊VPS的證書然而遇到了非常奇怪的權限問題而導致Nginx無法讀取密鑰檔案。於是索性在舊VPS上首先禁用了自動續期證書的cron job,關閉SSL端口,然後在新VPS上配置好Nginx的SSL端口server,使用certbot初始化和生成SSL證書(在CentOS 7下certbot可以直接通過yum安裝了!),重啟Nginx服務測試https,自動續期SSL證書就設定一個cron job便是。

最後到DNS域名管理處更改IP位址到新的VPS IP位址,大功告成!

Author: librehat

自由軟體萬歲!

9 thoughts on “VPS遷移日誌”

        1. 上次没找到,还以为记错了,debian testing 里确实提供了 php7.0,但 stable 里还没有:https://tracker.debian.org/pkg/php7.3

Comments are closed.