購買至少 4GB 記憶體的樹莓派 4,可以最方便的在手邊學習架設 Linux 網路主機。另一個方案是在 Oracle 雲端開一個「永久免費」的 ARM 虛擬主機,很大器的提供了 4 核、24GB 記憶體,但由於數量有限,可能某些距離台灣較近的機房不好搶,但既是學習實驗之用、再搭配 Cloudflare CDN,延遲幾秒鐘不是問題,能搶到就很好。

基礎設置不在此贅述,大概需要在安裝完 Linux 後,新建日常登入使用的用戶、關閉 root 登入權限、取消密碼登入並設置好金鑰,將 SSH 埠口從駭客必定會挑釁的 22 改成其他,設置一下 UFW 或 iptables 防火牆,就擁有一個相當安全的雲端主機了。

由於未來都會使用 Docker 來安裝各類服務,安裝好 Docker 與 Docker Compose,系統其他環境都會維持很乾淨。

將自己的網域預先在 DNS 中設定好指向這台主機。

接著需要新建並編輯下列檔案:

  • Caddyfile
  • docker-compose.yml
  • conf/mariadb.env
  • conf/php.ini
  • conf/wordpress-site1.env

詳細的檔案內容請參照或拷貝這裡的 github gist 內容使用。

執行 docker-compose up -d 讓每個服務(包含資料庫)都先跑起來,Caddy 2 需要一點時間,會自動建立讓網站以 https(SSL)運行的所有必要機制,完全不需要其他繁瑣程序與設置。

等候的時間正好讓我們建立 WordPress 需要的資料庫:

docker-compose exec mariadb mysql -u root --password=<a-root-password>

MariaDB > CREATE USER wordpress IDENTIFIED BY '<a-wordpress-password>';

MariaDB > CREATE DATABASE wordpress_site1;
MariaDB > GRANT ALL PRIVILEGES ON wordpress_site1.* TO "wordpress"@"%";

MariaDB > FLUSH PRIVILEGES;
MariaDB > EXIT;

接著嘗試連接已設置的網域,會出現建立第一位用戶的介面,大功告成。

主要參考這篇:Serving WordPress with Caddy 2 and Docker