MENU

さくらのVPSでKUSANAGI 9(AlmaLinux 9)を使い、高速WordPress環境を構築してみた

こんにちは!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 の開発版に近いOSAlmaLinux は Red Hat Enterprise Linux との互換性を重視したOSです。

特に大きな違いは、更新モデルとサポート期間です。

特徴 CentOS StreamAlmaLinux
位置づけRed Hat Enterprise Linux のアップストリーム(開発版)Red Hat Enterprise Linux のバイナリ互換ディストリビューション
提供元The CentOS ProjectAlmaLinux 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ではメモリが足りなかった様ですね・・・

超高速CMS実行環境 KUSANAGI
KUSANAGI 9 for さくらのVPS - 超高速CMS実行環境 KUSANAGI KUSANAGI 9 for さくらのVPSは、さ ... Read more
項目
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以上のプランで構築をした方が安定した稼働が期待出来そうです!

最後までお読みいただき、ありがとうございました!

お問い合わせ

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ネットアシスト運用チーム10年目の運用エンジニア
ベーシック試験 | さくらのクラウド検定
AWS Certified Solutions Architect - Associate

目次