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位址,大功告成!

9 responses to “VPS遷移日誌”

  1. Haozhe Xie avatar

    Arch Linux has already supported PHP 7.3.0.

    I’m using TLS 1.3 and PHP 7.3 in my VPS :)

    1. librehat avatar

      Using Arch in the server? Brave man.

  2. oott123 avatar

    为啥突然改用繁体中文写文章了 233 有点看不明白……得上 google translate 了(

    1. librehat avatar

      不會有那麼誇張的吧!

  3. 石樱灯笼 avatar

    不错,能上php7.3。像我这种只用apt的就只能用到7.0。

    1. tom avatar
      tom

      debian testing

      1. tom avatar
        tom

        抱歉,我记错了。好像确实没有。

        1. tom avatar
          tom

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

    2. librehat avatar

      難道沒有Debian/Ubuntu的repo可用的嗎?