KUSANAGIでWordPress立て

検討

conoha wing

立ち上げ時にroute 53で既に持っている自分のドメインのサブドメインだけを設定する方法がわからず。ベースドメインを追加してからサブドメインを追加しないといけないんだが、もちろんベースドメインはすでにRoute53の管理下にあるので登録できず、終わり。これなんかやり方あるんですか?いや直接設定ファイル触ったりアレコレすればいけるのかもしれないけどそれならvps使うので。

conoha vps

用意されているKUSANAGI用のイメージを使ったが、

  • dnf upgradeの時点で止まる
  • kusanagi initでDHパラメータの生成失敗してるのにそのまま処理を続けて後段でコケる
  • 管理画面コンソールは以前に比べてめちゃくちゃ重くなってる

終わり。kusanagiの初期設定で落ちるのはopenssl dhparamを直接叩けば動くけど、できるだけそういう特殊手動処理はやりたくない。昔はconoha愛用してたけど、なんか最近ダルいので全部切った。管理画面重くなりすぎだろ。

aws lightsail

4GBプランで月額24$。機能に問題はないけど金額がちょい高め。円、安すぎない????

x server vps

4GBプランで月額1700円、2GBプランで830円。初めてx server使ったけど、管理画面が激軽でとても偉い。今後、おもちゃ上げVPSはx serverを使っていく。

作業

サーバ起動

AlmaLinux 9にKUSANAGI 9を入れるように設定する。
前もって使うドメインのAレコードに当該VPSのIPアドレスを追加しておく。俺の場合はRoute53で管理してるのでそっちに追加した。
XServerのパケットフィルター設定で次の個所を開けておく。

  • SSH TCP 22
  • Web TCP 20/21/80/443
  • メール TCP 25/110/143/465/587/993/995

公開鍵を登録しておき、sshにはそれを指定する。

KUSANAGI設定

大体説明に従うだけ。

KUSANAGI 9クイックスタート – 超高速CMS実行環境 KUSANAGI

dnf upgrade -y
reboot

kusanagi init --passwd hogehoge --nophrase --dbrootpass hogehoge --nginx127 --php81 --mariadb10.5

kusanagi provision --wp --fqdn blog.ayataka0nk.com --noemail --dbname kusanagi_db --dbuser kusanagi_db --dbpass hogehoge --adminemail dummy@gmail.com --adminpass hogehoge --adminuser ayataka0nk ayataka0nk

別にnginxとかmariadbは指定しなくてもいいと思う。

wordpressのユーザ名は後から変更できずユーザー作り直しになってしまい美しくない展開になるので--adminuserの設定を忘れない(一敗)。

kusanagi init中に、プロセスの終了を待ってます的なメッセージで割と長く待たされてもCtrl+Cを押してしまうと整合性が崩れて作り直しになってしまうことがあるので注意(一敗)。よくわからんけどAlmaLinuxの特性っぽいね。

kusanagiのsslはなんかあれやこれやでまあ失敗するので、ここでは--noemailを設定することによってSSL設定は後回しにしないと不整合が生じて面倒が起きる(一敗)。certbotで証明書は取得できても、ファイルが見つかりませんみたいなエラー吐いた回もあった(一敗)。

SSL設定

# dry runでテスト
certbot certonly --webroot -w /home/kusanagi/ayataka0nk/DocumentRoot -d blog.ayataka0nk.com -m dummy@gmail.com --agree-tos --dry-run

# 問題なければ実行
certbot certonly --webroot -w /home/kusanagi/ayataka0nk/DocumentRoot -d blog.ayataka0nk.com -m dummy@gmail.com --agree-tos -v

メールアドレスはdummyにしてるけど実際は自分のメールアドレスを入れている。

--dry-runで確認をせず何度も失敗すると制限にかかり数日から一週間certbotを叩けなくなることがある(昔一敗)。

証明書と鍵の場所が表示されるのでそれを控えておき、kusanagi sslで使う。

# kusanagi sslコマンドはプロファイルルートで実行する必要があるため
cd /home/kusanagi/ayataka0nk
# 証明書と鍵を登録する
kusanagi ssl --cert /etc/letsencrypt/live/blog.ayataka0nk.com/cert.pem --key /etc/letsencrypt/live/blog.ayataka0nk.com/privkey.pem
systemctl restart nginx127

SSLの定期更新設定

sudo vi /usr/lib/systemd/system/certbot-renew.service

ExecStartを書き換える

ExecStart=/bin/sh -c '/usr/bin/certbot renew --disable-renew-updates --noninteractive --no-random-sleep-on-renew --no-redirect $PRE_HOOK $POST_HOOK $RENEW_HOOK $DEPLOY_HOOK $CERTBOT_ARGS && systemctl restart nginx127'

--disable-renew-updatesは設定ファイルの自動書き換えが起きないようにするため(一敗)。--noninteractiveは対話式でなく実行するため(一敗)。--no-redirectも勝手に設定を書き換えられると困るため(一敗)、なんだけどもしかして--disable-renew-updates入れてるならいらなくね?知らん。

上記ExecStartの最後にnginx127の再起動コマンドも入れておかないと、証明書の更新をnginxが認識せず証明書切れ画面になってしまう(二敗)。これ忘れがちでめんどい。

systemctl daemon-reload
systemctl restart certbot-renew.timer

basic認証は無効化

単純なパスワード2重にして何が変わるんじゃ。まあ少しは変わるか。何にせよ後で多段認証入れるからいらん。

vi /etc/opt/kusanagi/nginx/conf.d/ayataka0nk.wp.inc

適当にコメントアウト

location ~* /wp-login\.php$|/wp-admin/((?!(admin-ajax\.php|css/|images/|js/)).)*$ {
#    satisfy any;
#    allow 127.0.0.1;
#    deny all;
#    auth_basic "basic authentication";
#    auth_basic_user_file "/home/kusanagi/.htpasswd";

これ最近のアプデで追加されたらしい。KUSANAGI 9 バージョンアップ情報 9.6.0-1 – 超高速CMS実行環境 KUSANAGI

initかprovisionのときbasic認証をoffにするオプションがないか探したけどドキュメントにもコマンドヘルプにもなかったのでないんやろな。(2024/10/19現在)

init – 超高速CMS実行環境 KUSANAGI
provision – 超高速CMS実行環境 KUSANAGI

cocoonインストール

Cocoonテーマのダウンロード | Cocoon (wp-cocoon.com)

Cocoonはマニュアルも何もかも優秀なのでマニュアルに従い導入するだけ過ぎる。

プロフィール表示

管理画面の外観~からプロフィールドウィジェットをサイドナビゲーションに適当に追加。

wordpressを使うことにした理由とかのポエム

文字を投げ捨てる場所について。 | 曖昧な箱 (ayataka0nk.com)

コメント

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