提供を受けた検証について:本記事の検証には、エックスサーバー株式会社から無償提供を受けた「XServer VPS クラウド」の利用環境(VPS〈Linux〉・メモリ4GB/vCPU 4コア・ディスク50GB/1ヶ月)を使っています。記事の内容・評価は当サイトが独自に行っており、提供元の確認・承認を受けていません。
結論:XServer VPS クラウドではセットアップスクリプト「WordPress(KUSANAGI)」でKUSANAGI 9が入りますが、引数なしの kusanagi init と --email のない provision はKUSANAGI 9.11.5では通りませんでした。RedisはOS標準のValkey 8.0かRedis 7で足り、再起動後も自動で動きます。ページキャッシュを有効にすると、サーバー内から測ったTTFBは約34ms→約6〜7msでした。
XServer VPS(通常版)は2026年9月17日から新規受付を一時停止しています。本記事は後継のXServer VPS クラウドで、KUSANAGIの導入からRedis・ページキャッシュまでを2026年9月27〜28日に実機で確かめた手順です。
検証した環境と、始める前に決めておくことは?
OSはAlmaLinux 8.9・9.3・CentOS Stream 9のどれかを選び、パケットフィルターで22・80・443番を開けます。
| 項目 | 検証した環境 |
|---|---|
| サーバー | XServer VPS クラウド(メモリ4GB・vCPU 4コア・ディスク50GB) |
| 選んだOS | AlmaLinux 9.3(セットアップ中の更新で9.8になった) |
| KUSANAGI | 9.11.5(nginx 1.31.5・PHP 8.3.33・MariaDB 10.11.18) |
| かかった時間 | 再インストールの実行から約13分(うちKUSANAGIのセットアップ約5分) |
公式の対応OS一覧に無いAlmaLinux 9.0では、スクリプトを選べませんでした。22番は接続元を自分だけに絞ります。
ステップ1:セットアップ直後に何を確かめる?
SSHの鍵を登録しても、パスワードでのログインは有効のままでした。完了を待って止めます。
22番が開いた後もセットアップ(cloud-init)は約5分続いていました。
cloud-init status --wait
完了後も、sshdの実効設定(sshd -T)でパスワード認証とrootのログインが有効でした。次のファイルを作り、別の端末で鍵のログインを確かめてから今の接続を閉じます。
# /etc/ssh/sshd_config.d/01-hardening.conf PasswordAuthentication no KbdInteractiveAuthentication no PermitRootLogin prohibit-password
sshd -t && systemctl reload sshd
変更後、パスワードだけの接続は拒否され、鍵では入れました。
続けて dnf -y upgrade で更新します。動いているカーネルは9.3のままだったので、needs-restarting -r で要ると出たら再起動します。
ステップ2:kusanagi init と provision はどう打てば通る?
引数なしの init も、--email のない provision もエラーで止まります。必須の引数を付けて打ちます。
kusanagi init は引数なしだと「--passwd と --dbrootpass が必要」で終わり、対話形式になりません。次の形で約4分で完了しました。
kusanagi init --passwd 'kusanagiユーザーのパスワード' --nophrase \ --dbrootpass 'MariaDBのrootパスワード' --basicauthpass 'Basic認証のパスワード'
provision は --email か --noemail が必須で、--dbpass は8文字以上です。WordPressの初期設定まで済ませるなら管理者の情報も渡します(公式の説明)。
kusanagi provision --wp --fqdn example.com --email you@example.com \ --adminuser 管理者名 --adminpass '管理者のパスワード' --adminemail you@example.com \ --title "サイト名" --dbpass '8文字以上のパスワード' プロファイル名
よくあるつまずき:provision が最後に失敗し、httpsが自己署名のまま
WordPressの導入と証明書の取得は成功したのに、最後のnginxの設定確認が存在しない場所を見て provision failed になりました。httpsは自己署名のままだったので、次のコマンドで読み直すと、外からの接続で発行元がLet’s Encrypt・証明書の検証エラーなしに変わりました。
/opt/kusanagi/nginx131/sbin/nginx -t && systemctl reload nginx131
証明書の自動更新(毎週のcron)のときに読み直されるかは、今回の期間では確かめられていません。また、作ったWordPressはインデックスを許す設定なので、試験用なら止めます。wp-cliとPHPは既定のPATHに無いので、PATHを通してkusanagiユーザーで打ちます。
export PATH=/opt/kusanagi/php-8.3/bin:/opt/kusanagi/bin:$PATH sudo -u kusanagi env PATH=$PATH wp option update blog_public 0 --path=/home/kusanagi/プロファイル名/DocumentRoot
ステップ3:Redisはソースからビルドすべき?
OS標準のValkey 8.0かRedis 7で足ります。どちらもsystemdで動き、root以外の利用者で、再起動後も自動で戻りました。
KUSANAGIのPHPにはRedis用の拡張(PhpRedis 6.3.0)が最初から入っています。サーバー側はどちらか一方を入れます(同じ6379番のため)。
# Valkey 8.0(Redis互換) dnf -y install valkey systemctl enable --now valkey # または Redis 7 dnf -y module enable redis:7 dnf -y install redis systemctl enable --now redis
WordPress側はプラグイン「Redis Object Cache」を入れて有効にし、Status: Connected になれば接続できています。
cd /home/kusanagi/プロファイル名/DocumentRoot sudo -u kusanagi env PATH=$PATH wp plugin install redis-cache --activate sudo -u kusanagi env PATH=$PATH wp redis enable sudo -u kusanagi env PATH=$PATH wp redis status
| 入れ方 | 版 | 動く利用者(ps) | 再起動の後 |
|---|---|---|---|
| dnf(Valkey) | 8.0.10 | valkey | 手で起動せずに接続(確認) |
| dnf(Redis 7) | 7.2.16 | redis | 手で起動せずに接続(確認) |
| 公式ソースからビルド | 8.10.2 | 起動した利用者(手順どおりならroot) | 自分でsystemdへの登録が要る |
どの方法でも、ページを開く前後でヒット数が増えました。ValkeyとRedis 7は、それぞれ再起動の後にも Status: Connected とヒット数の増加を確かめています。なお、プラグインにはValkeyの版が「7.2.4」と出ます(Redisの版として7.2.4を返すため)。
ソースからビルドすると3か所で止まりました。①gccが無い ②既定の make は同梱モジュールまで作り、CMakeやRustが無いと失敗する(中核だけなら make build redis=README)③配布の redis.conf の loadmodule 4行で起動しない。
既定では待ち受けは127.0.0.1と::1だけ(ss -ltnp)、メモリの上限(maxmemory)は0=上限なしでした。キャッシュ専用なら上限を決め、追い出し方を allkeys-lru にしておくと、最近使われていないキーから消されます(Redis公式のKey evictionも、特に理由がなければよい既定としています)。
ステップ4:「サーバーキャッシュ設定」はVPSのどこにある?
VPSにはサーバーパネルのキャッシュ設定はありません。KUSANAGIのコマンドで有効にします。
kusanagi fcache on プロファイル名 # nginxのFastCGIキャッシュ kusanagi bcache on プロファイル名 # KUSANAGIのページキャッシュ
| 状態 | TTFBの中央値(20回) | 応答を返したもの |
|---|---|---|
| ページキャッシュなし(Redisだけ) | 34.4ms | WordPress(PHP) |
fcache on |
6.1ms | nginxのキャッシュ |
bcache on |
7.2ms | KUSANAGIのページキャッシュ |
| 両方 on | 6.2ms | KUSANAGIのページキャッシュ |
| ページキャッシュなし(最後にもう一度) | 34.0ms | WordPress(PHP) |
測り方は、サーバーの中から自分自身へトップページを取り、温め2回の後の20回の中央値です(9月27日・ネットワークの揺れを含まない)。curlの既定の名乗りでは bcache の対象にならないので、ブラウザと同じ名乗りにそろえました。応答を返したものは、応答ヘッダー(x-f-cache・x-b-cache)で見分けています。
レンタルサーバーのサーバーキャッシュは200と404をキャッシュする仕様ですが(公式マニュアル)、KUSANAGIの fcache は200だけを10分です。実機でも同じ404を続けて開いてキャッシュから返ることはありませんでした。更新が表示に出ないときは kusanagi fcache clear プロファイル名(bcache も同じ)で消せます。
まとめ:XServer VPS クラウドでKUSANAGIを使うときの要点は?
①SSHのパスワードログインを止める ②init・provision は必須の引数を付け、最後にnginxを読み直す ③RedisはOS標準で入れる ④ページキャッシュを fcache か bcache で有効にする、の順で進めます。
よくある質問
Redisが再起動の後に止まらないようにするには?
systemctl enable --now で起動すれば、再起動の後も自動で起動します(当サイトは両方で確認)。ソースからビルドした場合は、自分でsystemdに登録する必要があります。

コメント