![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
ブログの記事を高速で提供する為にやった作業の記録
サーバー管理とか難しい事はGoogleさんにお任せだ
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
いいですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
この構成はこんな人におすすめ
- Dockerをちょっと触った事がある
- Firebaseもちょっと触った事がある
- DNSの事が少しわかる
- WordPressの仕組みを何となく知ってる
- 早いブログを作りたい
- コメント機能等のサーバー側でごちゃごちゃする機能は不要
- 何かあったら自分で解決するという心を持ってる
- ブログは家で書く
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
そうなんですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
ちなみにこの記事はこれくらいのスコアが出ている
![](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815201431.png)
![](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815201503.png)
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
早いですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
では私がやった手順を説明する
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
よろしくお願いします
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
まずは適当な所にディレクトリを作成
Powershellでディレクトリを作成する例
mkdir D:\src\wordpress
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
Windowsを使っているんですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
作成したディレクトリの直下に、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](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
変更した所はどこですか?
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
portsを変更して、volumesを追記
ports: - 8000:80
volumes: - ${DOCUMENT_ROOT}:/var/www/html_static/
portsを変更:ホストであるWindowsからブラウザでアクセスする為
volumesを追記:出力されたhtmlをホストから確認する為
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
そうなんですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
Dockerの準備ができたので起動
デタッチド・モードで起動
docker compose up -d
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
簡単ですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
起動したら、ブラウザからlocalhost:8000にアクセス
![wordpress、初回起動時の画面](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815173219.png)
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
あとは普通のワードプレスと同じ手順ですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
管理画面にログインできたら、ブログをhtmlとして出力する為のプラグインをインストール
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
便利なものがあるんですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
SimplyStaticのインストールが終わったら設定
![](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815180735.png)
![](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815210310-1024x771.png)
![](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815174530-1024x752.png)
- リンク先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](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
むずかしそうですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
sitemap.xml、robots.txtは雰囲気で設定した
次にパーマリンク設定
これを設定しないと投稿毎にindex.htmlが生成されてしまう
![](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815192939-1024x419.png)
- カスタム構造
- /%year%/%monthnum%/%post_id%.html
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
地味ですが大切ですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
さて、一通り設定が終わったのでSymple Staticの診断を確認する
![](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/20220815193249-1-1024x456.png)
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
一つ失敗してますね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
これはいいんだ。これで完成
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
そういうものなんですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
あとは生成ボタンを押してhtmlが出力される事を確認したら、公開
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
まだ続くんですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
Firebase Hostingへデプロイする準備をする
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
カタカナが多いですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
サーバーへアップロードするという事だ
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
分かりやすいカタカナになりましたね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
Firebase CLIのインストールは終わっていて
ブログ用のプロジェクトが作成済みという前提で進める
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
頑張ってください
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
まずはPowerShellで最初に作成したディレクトリへ移動しよう
Powershellでディレクトリを作成する例
cd D:\src\wordpress
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
全てはここから始まったんですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
ここからは英語ばかりだ、次のコマンドを入力
firebase init
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
戦いはこれからですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
すると次の質問が帰ってくる。YESと回答
? Are you ready to proceed? ## 意訳:続ける準備はできた? -> YES
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
長い闘いになりそうですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
長いので質問と回答を全部書く
? 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](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
助かります
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
このままだとfeedがリンク切れになるのでリダイレクトの設定をする
設定方法は下記のようにfirebase.jsonの追記。
{ "hosting": { "public": "./html_static", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], /** 追記した箇所ここから **/ /** JSONにコメントは無いのでコピペする時は注意 **/ "redirects": [ { "regex": "^(.+|)/feed", "destination": ":1/feed/index.xml", "type": 301 } ] /** 追記した箇所ここまで **/ } }
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
何に使うものなのかは分かりませんね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
これですべての準備が完成。最後にデプロイのコマンドを実行
firebase deploy
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
始めての作業の割には詰まる所はなかったですね
![hakase](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_hakase.webp)
これでサーバーに詳しくない私も早いブログを作ることができた
![neko](https://www.sleepingmonster.dev/wp-content/uploads/2022/08/fukidasi_neko.webp)
お疲れさまでした