WordPressで構築したサイトをFirebase Hostingを使って公開した話

hakase
hakase

ブログの記事を高速で提供する為にやった作業の記録

サーバー管理とか難しい事はGoogleさんにお任せだ

neko
neko

いいですね

hakase
hakase

参考した記事はこちら

neko
neko

お世話になりました

hakase
hakase

この構成はこんな人におすすめ

  • Dockerをちょっと触った事がある
  • Firebaseもちょっと触った事がある
  • DNSの事が少しわかる
  • WordPressの仕組みを何となく知ってる
  • 早いブログを作りたい
  • コメント機能等のサーバー側でごちゃごちゃする機能は不要
  • 何かあったら自分で解決するという心を持ってる
  • ブログは家で書く
neko
neko

そうなんですね

hakase
hakase

ちなみにこの記事はこれくらいのスコアが出ている

neko
neko

早いですね

hakase
hakase

では私がやった手順を説明する

neko
neko

よろしくお願いします

hakase
hakase

まずは適当な所にディレクトリを作成

Powershellでディレクトリを作成する例

mkdir D:\src\wordpress
neko
neko

Windowsを使っているんですね

hakase
hakase

作成したディレクトリの直下に、docker-compose.ymlを作成

次のサイトの情報を元に一部変更

services:
  db:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    # If you really want to use MySQL, uncomment the following line
    #image: mysql:8.0.27
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
  wordpress:
    image: wordpress:latest
    ports:
      - 8000:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
    extra_hosts:
      - localhost:${DOCKER_HOST_IP} 
    volumes:
      - ${DOCUMENT_ROOT}:/var/www/html_static/
volumes:
  db_data:
neko
neko

変更した所はどこですか?

hakase
hakase

portsを変更して、volumesを追記

    ports:
      - 8000:80
    volumes:
      - ${DOCUMENT_ROOT}:/var/www/html_static/
メモ

portsを変更:ホストであるWindowsからブラウザでアクセスする為

volumesを追記:出力されたhtmlをホストから確認する為

neko
neko

そうなんですね

hakase
hakase

Dockerの準備ができたので起動

デタッチド・モードで起動

docker compose up -d
neko
neko

簡単ですね

hakase
hakase

起動したら、ブラウザからlocalhost:8000にアクセス

wordpress、初回起動時の画面
neko
neko

あとは普通のワードプレスと同じ手順ですね

hakase
hakase

管理画面にログインできたら、ブログをhtmlとして出力する為のプラグインをインストール

neko
neko

便利なものがあるんですね

hakase
hakase

SimplyStaticのインストールが終わったら設定

設定したもの
  • リンク先URL
    • https://www.sleepingmonster.dev
  • ローカルディレクトリ
    • /var/www/html_static/
  • 追加するURL
    • http://localhost:8000/sitemap.xml
    • http://localhost:8000/robots.txt
  • 除外するURL
    • http://localhost:8000/wp-json
    • http://localhost:8000/wp-login.php
    • http://localhost:8000/wp-admin.*
    • http://localhost:8000/comments.*
    • http://localhost:8000/.*.php
neko
neko

むずかしそうですね

hakase
hakase

sitemap.xml、robots.txtは雰囲気で設定した

次にパーマリンク設定

これを設定しないと投稿毎にindex.htmlが生成されてしまう

設定したもの
  • カスタム構造
    • /%year%/%monthnum%/%post_id%.html
neko
neko

地味ですが大切ですね

hakase
hakase

さて、一通り設定が終わったのでSymple Staticの診断を確認する

neko
neko

一つ失敗してますね

hakase
hakase

これはいいんだ。これで完成

neko
neko

そういうものなんですね

hakase
hakase

あとは生成ボタンを押してhtmlが出力される事を確認したら、公開

neko
neko

まだ続くんですね

hakase
hakase

Firebase Hostingへデプロイする準備をする

neko
neko

カタカナが多いですね

hakase
hakase

サーバーへアップロードするという事だ

neko
neko

分かりやすいカタカナになりましたね

hakase
hakase

Firebase CLIのインストールは終わっていて

ブログ用のプロジェクトが作成済みという前提で進める

neko
neko

頑張ってください

hakase
hakase

まずはPowerShellで最初に作成したディレクトリへ移動しよう

Powershellでディレクトリを作成する例

cd D:\src\wordpress
neko
neko

全てはここから始まったんですね

hakase
hakase

ここからは英語ばかりだ、次のコマンドを入力

firebase init
neko
neko

戦いはこれからですね

hakase
hakase

すると次の質問が帰ってくる。YESと回答

? Are you ready to proceed? ## 意訳:続ける準備はできた?
 -> YES
neko
neko

長い闘いになりそうですね

hakase
hakase

長いので質問と回答を全部書く

? Which Firebase features do you want to set up for this directory?
 -> Hosting: Configure files for Firebase Hosting and (optionally) set up

? Please select an option: 
 -> Use an existing project
? Select a default Firebase project for this directory: 
 -> ******** (blog) ## 適宜書き換えてください

? What do you want to use as your public directory?
 -> ./html_static
? Configure as a single-page app (rewrite all urls to /index.html)?
 -> No
? Set up automatic builds and deploys with GitHub?
 -> No
neko
neko

助かります

hakase
hakase

このままだとfeedがリンク切れになるのでリダイレクトの設定をする

設定方法は下記のようにfirebase.jsonの追記。

{
  "hosting": {
    "public": "./html_static",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    /** 追記した箇所ここから **/
    /** JSONにコメントは無いのでコピペする時は注意 **/
    "redirects": [ {
      "regex": "^(.+|)/feed",
      "destination": ":1/feed/index.xml",
      "type": 301
    } ]
    /** 追記した箇所ここまで **/
  }
}
neko
neko

何に使うものなのかは分かりませんね

hakase
hakase

これですべての準備が完成。最後にデプロイのコマンドを実行

firebase deploy
neko
neko

始めての作業の割には詰まる所はなかったですね

hakase
hakase

これでサーバーに詳しくない私も早いブログを作ることができた

neko
neko

お疲れさまでした

タイトルとURLをコピーしました