こんにちは!UOZUです。
さくらのVPSで、標準OSとして 「KUSANAGI 9(AlmaLinux 9 x86_64)」 の提供が開始されました。
これまでは「KUSANAGI 9(CentOS Stream 9 x86_64)」が選択肢として提供されていましたが、今回 AlmaLinux 9 版が追加されたことで、長期運用を前提としたWordPress環境をより構築しやすくなっています。
この記事では、CentOS Stream と AlmaLinux の違いを整理したうえで、実際にさくらのVPS上で KUSANAGI 9(AlmaLinux 9 x86_64)を使い、WordPressを公開するまでの手順を検証します。
また、構築中に発生したメモリ不足や、Let’s Encrypt証明書取得時の注意点についてもあわせて紹介します。
CentOS Stream と AlmaLinux の違い
まず、CentOS Stream と AlmaLinux の違いを確認してみます。
どちらも Red Hat Enterprise Linux と関連のあるLinuxディストリビューションですが、位置づけや用途には大きな違いがあります。
大まかにいうと、CentOS Stream は Red Hat Enterprise Linux の開発版に近いOS、AlmaLinux は Red Hat Enterprise Linux との互換性を重視したOSです。
特に大きな違いは、更新モデルとサポート期間です。
| 特徴 | CentOS Stream | AlmaLinux |
|---|---|---|
| 位置づけ | Red Hat Enterprise Linux のアップストリーム(開発版) | Red Hat Enterprise Linux のバイナリ互換ディストリビューション |
| 提供元 | The CentOS Project | AlmaLinux OS Foundation |
| 更新モデル | ローリングリリース | ポイントリリース (RHELに追従) |
| 主な用途 | 開発、テスト、先行検証 | 本番環境、長期運用 |
| 互換性 | RHELと完全互換ではない | RHELと1:1のバイナリ互換 |
| サポート期間 | CentOS Stream 9 は 2027-05-31 まで | AlmaLinux 9 はセキュリティサポート 2032-05-31まで |
Red Hat Enterprise Linux の新しい機能を先行して試したい場合は CentOS Stream、本番環境や長期運用を重視する場合は AlmaLinux が選択肢になりやすいといえます。
KUSANAGI 9(AlmaLinux 9)でWordPress環境を構築する
それでは、実際に KUSANAGI 9(AlmaLinux 9 x86_64)を使ってWordPress環境を構築していきます。
今回は以下の内容で設定を進めます。
| 設定項目 | 設定内容 |
|---|---|
| ドメイン名 | wp.uozu |
| メールアドレス | uozu@example.com |
| SSL証明書 | Let’s Encryptで取得 |
さくらのVPSでKUSANAGIを選択する
さくらのVPSを新規作成する際は、OS選択画面から KUSANAGI を選択します。その後、利用したいバージョンやサーバープランを選択して、VPSを作成します。
ドメイン名に設定するIPアドレスは、VPS作成後に確認できます。


また、すでに作成済みのVPSがある場合は、OS再インストール画面からKUSANAGIを選択して再インストールすることも可能です。


しばらく待つと、VPSの作成とOSインストールが完了します。完了後、サーバーへSSHでログインします。

ログインすると、KUSANAGIのバージョン情報が表示されました。
$ ssh vps.uozu
Warning: Permanently added '203.0.113.1' (ECDSA) to the list of known hosts.
__ ____ _______ ___ _ _____ __________
/ //_/ / / / ___// | / | / / | / ____/ _/
/ ,< / / / /\__ \/ /| | / |/ / /| |/ / __ / /
/ /| / /_/ /___/ / ___ |/ /| / ___ / /_/ // /
/_/ |_\____//____/_/ |_/_/ |_/_/ |_\____/___/
Version 9.8.8-1.el9 on AlmaLinux 9, Powered by Prime Strategy.
SAKURA internet [Virtual Private Server SERVICE]
Last login: Fri Apr 24 15:17:43 2026 from 113.33.37.98
初回ログイン後にOSアップデートを実行する
KUSANAGIには公式のマニュアルがあるので、手順通りに設定を進めていきましょう!
ログインできたら、rootに昇格してOSアップデートを実行しますが・・・
ここで、今回の検証環境では問題が発生しました。
[alma@vps ~]$ sudo su -
Last login: Fri Apr 24 15:21:03 JST 2026 on pts/0
[root@vps ~]# dnf upgrade -y
AlmaLinux 9 - AppStream 8.1 MB/s | 20 MB 00:02
AlmaLinux 9 - BaseOS 8.5 MB/s | 24 MB 00:02
AlmaLinux 9 - CRB 4.5 MB/s | 4.5 MB 00:01
AlmaLinux 9 - Extras 33 kB/s | 21 kB 00:00
Extra Packages for Enterprise Linux 9 - x86_64 541 kB/s | 21 MB 00:38
Killed
ログを確認すると、dnf 実行中にメモリ不足が発生し、プロセスが強制終了されていました。
[root@vps ~]# less /var/log/messages
Apr 24 15:22:25 os3-374-20075 kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/session-3.scope,task=dnf,pid=956,uid=0
Apr 24 15:22:25 os3-374-20075 kernel: Out of memory: Killed process 956 (dnf) total-vm:604108kB, anon-rss:325448kB, file-rss:128kB, shmem-rss:0kB, UID:0 pgtables:812kB oom_score_adj:0
ログを確認すると、dnf 実行中にメモリ不足が発生し、プロセスが強制終了されていました。
今回使用した512MBプランでは、アップデート処理中にメモリが不足してしまったようです。
KUSANAGIの公式サイトでは、「さくらのVPSは4GB以上を推奨環境としています。」との事だったので、512MBではメモリが足りなかった様ですね・・・

項目 値 OS 「KUSANAGI」を選択します。 バージョン 「AlmaLinux 9 : 9 (AlmaLinux 9 x86_64)」を選択します。 プラン メモリの容量を任意で選択します。
KUSANAGI 9 for さくらのVPSは4GB以上を推奨環境としています。リージョン 任意の値を選択します。 購入台数 任意の値を入力します。 管理ユーザーのパスワード 任意の値を設定します。 SSHキー設定 任意の値を設定します。 スタートアップスクリプト 任意の値を設定します。 サーバーの名前 任意の値を入力します。
スワップ領域の追加
メモリを増やす為にスケールアップしたい所ですが、メモリ状況を確認すると、スワップ領域が無い様です。
そこで、今回は2GBのスワップ領域を追加し、メモリと合計して2.5GBとして進めてみます。
[root@vps ~]# free -ht
total used free shared buff/cache available
Mem: 453Mi 123Mi 279Mi 6.0Mi 69Mi 330Mi
Swap: 0B 0B 0B
Total: 453Mi 123Mi 279Mi
[root@vps ~]# dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 9.92194 s, 216 MB/s
[root@vps ~]# chmod 600 /swapfile
[root@vps ~]# mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=04761126-0e4b-43e8-9921-89ded98d6920
再起動後もスワップ領域が有効になるように /etc/fstab に設定を追加します。
[root@vps ~]# cp -ip /etc/fstab /etc/fstab.org
[root@vps ~]# vi /etc/fstab
[root@vps ~]# diff /etc/fstab /etc/fstab.org
13d12
< /swapfile swap swap defaults 0 0
設定後、スワップを有効化します。合計で約2.5GBになりました!
[root@vps ~]# swapon -a
[root@vps ~]# free -ht
total used free shared buff/cache available
Mem: 453Mi 127Mi 10Mi 6.0Mi 333Mi 325Mi
Swap: 2.0Gi 0B 2.0Gi
Total: 2.4Gi 127Mi 2.0Gi
この状態で、再度アップデートを実行します。
[root@vps ~]# dnf upgrade -y
Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64 1.2 kB/s | 2.5 kB 00:02
PostgreSQL common RPMs for RHEL / Rocky Linux / AlmaLinux 9 - x86_64 6.4 kB/s | 659 B 00:00
PostgreSQL common RPMs for RHEL / Rocky Linux / AlmaLinux 9 - x86_64 47 kB/s | 2.4 kB 00:00
Importing GPG key 0x08B40D20:
Userid : "PostgreSQL RPM Repository pgsql-pkg-yum@lists.postgresql.org"
Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
From : https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-RHEL
~省略
Complete!
アップデート完了後、ホスト名を確認し、サーバーを再起動します。
[root@vps ~]# uname -n
vps.uozu
[root@vps ~]# reboot
[root@vps ~]# Shared connection to 203.0.113.1 closed.
KUSANAGIの初期設定を実行する
再起動まで完了したので、続いて、KUSANAGIの初期設定を実行します。
しばらく待つと、必要なパッケージのインストールや初期設定が実行されます。
$ ssh vps.uozu
[root@vps ~]# kusanagi init --passwd "パスワード" --nophrase --dbrootpass "パスワード" --basicauthuser ユーザー名 --basicauthpass パスワード --nginx129 --php81 --mariadb10.6
Generating SSL SESS ticket key for security
Generating 2048 bit DHE key for security
Generating DH parameters, 2048 bit long safe prime
~省略
Installed:
kusanagi-composer-2.9.7-1.el9.noarch
kusanagi-mozjpeg-utils-4.1.1-3.el9.x86_64
kusanagi-wp-cli-2.12.0-1.el9.noarch
Complete!
Adding password for user ユーザー名
init completed.
WordPressをプロビジョニングする
次に、WordPressのプロビジョニングを実行します。
このコマンドにより、WordPress本体のダウンロード、データベース作成、SSL証明書の取得などが実行されます。
[root@vps ~]# kusanagi provision --wp --fqdn wp.uozu --email uozu@example.com --adminemail uozu@example.com "UOZU"
Target directory is /home/kusanagi/UOZU.
provision mariadb completed.
provision db completed.
--2026-04-24 18:21:13-- https://ja.wordpress.org/wordpress-latest-ja.zip
Resolving ja.wordpress.org (ja.wordpress.org)... 198.143.164.252, 2607:f978:5:8002::c68f:a4fc
Connecting to ja.wordpress.org (ja.wordpress.org)|198.143.164.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36133480 (34M) [application/zip]
Saving to: '/tmp/wp_dl_dir.7le7Ql/wordpress.zip'
~省略
Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Domain: wp.uozu
Type: connection
Detail: 203.0.113.1: Fetching http://wp.uozu/.well-known/acme-challenge/4iQBh_6Jfr42GxGYHpvMz2I9sheUVVyFy4HZ-vJM1X8: Timeout during connect (likely firewall problem)
Hint: The Certificate Authority failed to download the temporary challenge files created by Certbot. Ensure that the listed domains serve their content from the provided --webroot-path/-w and that files created there can be downloaded from the internet.
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
Execution failed: certbot certonly --text --noninteractive --webroot -w /home/kusanagi/UOZU/DocumentRoot -d wp.uozu -m uozu@example.com --agree-tos
Return code was 1
Failed to get Let's Encrypt SSL certificate files.
kusanagi provision: error: command returned 1
kusanagi provision: error: provision failed
しかし、ここでLet’s EncryptのSSL証明書取得に失敗しました。
KUSANAGIの標準的なLet’s Encrypt証明書取得では、HTTP-01チャレンジが利用されます。そのため、証明書取得時には外部からHTTPアクセスできる必要があります。

今回は、さくらのVPS側のパケットフィルター設定を見直し、HTTPポートを含む、Webサービスへのアクセスを許可してから再実行しました。

[root@vps ~]# kusanagi provision --wp --fqdn wp.uozu --email uozu@example.com --adminemail uozu@example.com "UOZU"
Target directory is /home/kusanagi/UOZU.
provision mariadb completed.
provision db completed.
--2026-04-24 18:23:56-- https://ja.wordpress.org/wordpress-latest-ja.zip
Resolving ja.wordpress.org (ja.wordpress.org)... 198.143.164.252, 2607:f978:5:8002::c68f:a4fc
Connecting to ja.wordpress.org (ja.wordpress.org)|198.143.164.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 36133480 (34M) [application/zip]
Saving to: '/tmp/wp_dl_dir.xdkh0o/wordpress.zip'
~省略
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ssl email completed.
Auto renewal of certificate enabled.
ssl auto completed.
restart completed.
ssl completed.
reload completed.
Admin password: sFMe6uMZIHNr
Success: WordPress installed successfully.
Generated dbname: UOZU-cwBD
Generated dbuser: UOZU--RdQ
Generated dbpass: 1exT-o9aB-kLNI-o2JD
Provisioning of UOZU completed. Access wp.uozu and install wp.
provision completed.
再実行後、証明書取得とWordPressのインストールが正常に完了しました。
ドメインでアクセスをすると、既にWordPressのサンプルページが表示されています。

KUSANAGIを利用することで、WordPress本体の配置、データベース作成、SSL証明書設定までまとめて実行できるため、非常にスムーズにWordPress環境を構築できましたね!
CentOS Stream 9版KUSANAGIからAlmaLinux 9へ移行できるか検証する
続いて、すでに CentOS Stream 9 版のKUSANAGIを利用している場合に、AlmaLinux 9へ移行できるかも検証してみます。

現在のOSはCentOS Stream release 9となっています。
[centos@centos ~]$ cat /etc/redhat-release
CentOS Stream release 9
移行前に、システムを最新状態に更新します。
[centos@centos ~]$ sudo dnf update -y
Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64 1.5 kB/s | 2.5 kB 00:01
Extra Packages for Enterprise Linux 9 - Next - x86_64 499 kB/s | 260 kB 00:00
KUSANAGI RPM packages for centos/9 8.9 MB/s | 7.1 MB 00:00
Safe Remi's RPM repository for Enterprise Linux 9 - x86_64 480 kB/s | 1.4 MB 00:03
Dependencies resolved.
~省略
Installed:
freetype-2.10.4-11.el9.x86_64 graphite2-1.3.14-9.el9.x86_64
grub2-tools-efi-1:2.06-126.el9.x86_64 grub2-tools-extra-1:2.06-126.el9.x86_64
harfbuzz-2.7.4-10.el9.x86_64 kernel-5.14.0-694.el9.x86_64
kernel-core-5.14.0-694.el9.x86_64 kernel-modules-5.14.0-694.el9.x86_64
kernel-modules-core-5.14.0-694.el9.x86_64 kusanagi-python312-3.12.13-1.el9.x86_64
kusanagi-python312-libs-3.12.13-1.el9.x86_64 kusanagi-python312-setuptools-77.0.3-1.el9.noarch
libbabeltrace-1.5.8-10.el9.x86_64 libnsl2-2.0.0-1.el9.x86_64
libpng-2:1.6.37-15.el9.x86_64 libtirpc-1.3.3-9.el9.x86_64
libtool-ltdl-2.4.6-46.el9.x86_64 mpdecimal-2.5.1-3.el9.x86_64
openssl-fips-provider-1:3.5.5-1.el9.x86_64 python3-inotify-0.9.6-25.el9.noarch
Complete!
次に、AlmaLinuxが提供している移行用スクリプトを取得します。
[centos@centos ~]$ curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 53149 100 53149 0 0 167k 0 --:--:-- --:--:-- --:--:-- 167k
取得したスクリプトを実行します。
[centos@centos ~]$ sudo bash almalinux-deploy.sh -d
Check root privileges OK
Check centos-9.x86_64 is supported OK
Enabled repositories list created OK
Download RPM-GPG-KEY-AlmaLinux OK
Import RPM-GPG-KEY-AlmaLinux to RPM DB OK
Download almalinux-release package OK
Verify almalinux-release package OK
Your OS is supported OK
~省略
Complete!
Run dnf distro-sync -y OK
Restoring of alternatives is done OK
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done
Update GRUB configuration OK
All Secure Boot related packages which were not released by AlmaLinux are reinstalledOK
Check custom kernel OK
Migration to AlmaLinux is completed
完了後、サーバーを再起動します。
[centos@centos ~]$ sudo reboot
[centos@centos ~]$ Shared connection to 153.120.7.189 closed.
[centos@centos ~]$ cat /etc/redhat-release
AlmaLinux release 9.7 (Moss Jungle Cat)
CentOS Stream 9 から AlmaLinux 9 へ切り替わっていることを確認できました!
移行時の注意点
CentOS Stream 9 版のKUSANAGIからAlmaLinux 9へ移行する場合は、公式サイト記載の通り、いくつか注意点があります。
マイグレーションを行う際の注意点
- 実行前にはバックアップを取る
マイグレーションを行う際の注意点としまして、マイグレーションを実行する際には必ずスナップショットなどのバックアップを取ってから実行してください。
万が一、マイグレーションに失敗しますと復旧が非常に難しい場合がありますので、実行前には必ずバックアップを取ってください。- CMS のマイグレーションまではスクリプトは保証していない
AlmaLinux で提供しているスクリプトは OS のマイグレーションを行うものであり、 OS 上にインストールされている全てのアプリケーションのマイグレーションを行うわけではありません。
場合によっては OS のマイグレーションが成功しても CMS が正しく動かないケースもあります。
もしそういったことが起きましたら、以下の KUSANAGI ユーザーグループから確認してみてください。KUSANAGIユーザーグループ | 超高速WordPress仮想マシン「KUSANAGI」ユーザーグループ公式サイト
- クラウド側のイメージは CentOS Stream 8 ベースの KUSANAGI 9 のままである
あくまでクラウド側が保持している元の情報は CentOS Stream 8 ベースの KUSANAGI 9 であり、マイグレーションを行っても、クラウドベンダーが提供している AlmaLinux OS 8 ベースの KUSANAGI 9 にはなるわけではありません。
もちろん、マイグレーションを行った後の環境はクラウドベンダーで提供している AlmaLinux OS 8 ベースの KUSANAGI 9 と同等であり、機能に差はありません。
もし既存環境を移行する場合は、いきなり本番環境で実施するのではなく、検証環境で手順と影響範囲を確認してから進めるフローが安全ですので、ご注意ください。
さいごに
今回は、さくらのVPSで提供が開始された KUSANAGI 9(AlmaLinux 9 x86_64) を使い、WordPress環境を構築してみました。
実際に試してみると、KUSANAGIの初期設定とプロビジョニングを実行するだけで、WordPress本体の配置、データベース作成、SSL証明書の取得までまとめて行えるため、非常に手軽に高速なWordPress環境を用意できました。
また本番運用の際はKUSANAGIの推奨通り、メモリは4GB以上のプランで構築をした方が安定した稼働が期待出来そうです!
最後までお読みいただき、ありがとうございました!




