検討
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はマニュアルも何もかも優秀なのでマニュアルに従い導入するだけ過ぎる。
プロフィール表示
管理画面の外観~からプロフィールドウィジェットをサイドナビゲーションに適当に追加。
コメント