webcss.withrun.org 移転完全記録
- コアサーバーV2 → ConoHa VPS(Kusanagi / AlmaLinux9)
- 環境
- 移転前チェックリスト
- 全体の流れ
- STEP 1:DBをphpMyAdminでエクスポート
- STEP 2:WinSCPでConoHaにDBファイルをアップロード
- STEP 3:Kusanagiでプロビジョニング
- STEP 4:Nginx設定を書き換える
- STEP 5:DBをインポート
- STEP 6:lftpでwp-contentをミラーリング
- STEP 7:パーミッションと所有者を設定する【最重要】
- STEP 8:hostsファイルで動作確認
- STEP 9:Value DomainでDNS切り替え
- STEP 10:SSL証明書取得
- STEP 11:NginxのSSL証明書パスを更新
- STEP 12:セキュリティ・プラグイン設定の確認
- STEP 13:最終動作確認
- ⚠️ 発生したトラブルと解決方法
- Kusanagi環境の重要ポイントまとめ
- トラブル発生時の確認コマンド集
- 今回の教訓
コアサーバーV2 → ConoHa VPS(Kusanagi / AlmaLinux9)
作業日:2026年5月14日
過去の移転経験を活かした手順で臨んだが、新たなトラブルも発生。次回の移転をスムーズにするための完全記録。
環境
| 項目 | 内容 |
|---|---|
| 移転元 | コアサーバー V2({FTPホスト名}) |
| 移転先 | ConoHa VPS(AlmaLinux 9 / Kusanagi) |
| サイトURL | https://webcss.withrun.org |
| ConoHa IP | xxx.xxx.xxx.xxx |
| DB名 | {DB名} |
| DBユーザー | {DBユーザー名} |
| テーブルプレフィックス | wp_ |
| Kusanagiプロファイル名 | webcss |
移転前チェックリスト
- ConoHaのターミナルにSSHログインできる状態にしておく
- コアサーバーのFTPホスト名・FTPユーザー名・FTPパスワードを手元に用意
- コアサーバーのphpMyAdminにログインできる状態にしておく
- Value Domainにログインできる状態にしておく
- WinSCPをインストール済み
全体の流れ
- DBをphpMyAdminでエクスポート
- WinSCPでConoHaにDBファイルをアップロード
- Kusanagiでプロビジョニング
- Nginx設定を書き換える(HTTPSリダイレクト有効化)
- DBをインポート
- lftpでwp-contentをミラーリング
- パーミッションと所有者を設定する【最重要】
- hostsファイルで動作確認
- Value DomainでDNS切り替え
- SSL証明書取得
- Nginx設定のSSL証明書パスを更新
- セキュリティ・プラグイン設定の確認
- 最終動作確認
STEP 1:DBをphpMyAdminでエクスポート
- コアサーバーのphpMyAdminにログイン
- 左のリストから {DB名} をクリック
- テーブル一覧に wp_ から始まるテーブルがあることを確認(プレフィックスの確認)
- 上のメニューから 「エクスポート」 をクリック
- 方式は 「簡易」、形式が 「SQL」 になっていることを確認
- 「実行」 でPCに .sql ファイルをダウンロード
⚠️ 注意:詳細でエクスポートする場合は形式が「SQL」になっているか確認すること。
簡易でも詳細でもデータの中身は同じ。記事・コメント・設定すべて含まれる。
- □ {DB名}.sql のダウンロード完了
STEP 2:WinSCPでConoHaにDBファイルをアップロード
WinSCPでConoHa(xxx.xxx.xxx.xxx)に接続し、/tmp/ フォルダに .sql ファイルをドラッグ&ドロップします。
- □ /tmp/{DB名}.sql のアップロード完了
STEP 3:Kusanagiでプロビジョニング
ConoHaのターミナルで実行:
kusanagi provision webcss --wp --fqdn webcss.withrun.org --noemail \
--dbname {DB名} --dbuser {DBユーザー名} --dbpass {8文字以上のパスワード}⚠️ パスワードは8文字以上必須!8文字未満だと以下のエラーが出る:
kusanagi provision: error: argument --dbpass: DBPASS must have minimum 8 characters
コアサーバーのDBパスワードとは別物なので新しく決めてOK。
provision completed. が表示されれば成功。
- □ provision completed. を確認した
- □ 設定したDBパスワードをメモした
STEP 4:Nginx設定を書き換える
今回はプロビジョニング後のNginx設定にすでに443ブロックが存在していた。変更箇所は80番ブロックの1行だけ。
WinSCPで /etc/opt/kusanagi/nginx/conf.d/webcss.conf を開き以下を変更:
変更前:
#rewrite ^(.*)$ https://webcss.withrun.org$request_uri permanent; # SSL ONLY
変更後(先頭の # を削除するだけ):
rewrite ^(.*)$ https://webcss.withrun.org$request_uri permanent; # SSL ONLY
保存後にターミナルで実行:
kusanagi nginx --test kusanagi nginx --reload
nginx completed. が表示されれば成功。
- □ nginx completed. を確認した
STEP 5:DBをインポート
ConoHaのターミナルで実行:
mariadb -u {DBユーザー名} -p {DB名} < /tmp/{DB名}.sqlパスワードを聞かれたら {設定したDBパスワード} を入力。エラーが出ずに完了すればOK。
- □ エラーなしでインポート完了
STEP 6:lftpでwp-contentをミラーリング
⚠️ ftps:// では接続が止まる場合があります。必ず ftp:// を使います。
ConoHaのターミナルで実行:
lftp ftp://{FTPホスト名} -u {FTPユーザー名}パスワードを入力後:
cd public_html/webcss.withrun.org
mirror --use-pget-n=5 wp-content/ /home/kusanagi/webcss/DocumentRoot/wp-content/
転送完了後:
exit
- □ ミラーリング完了(エラーメッセージがないことを確認)
STEP 7:パーミッションと所有者を設定する【最重要】
⚠️ KusanagiのPHP実行ユーザーは httpd:www です。
kusanagi でも apache でもありません!
ここを正しく設定しないとプラグインのインストール・削除ができなくなります。
# ① 親ディレクトリを通過可能にする(711 = 中身の一覧は見せないが通過はOK)
chmod 711 /home/kusanagi/
chmod 711 /home/kusanagi/webcss/
# ② DocumentRoot以下の所有者をhttpd:wwwに変更
chown -R httpd:www /home/kusanagi/webcss/DocumentRoot/
# ③ ディレクトリとファイルのパーミッションを設定
find /home/kusanagi/webcss/DocumentRoot -type d -exec chmod 755 {} \;
find /home/kusanagi/webcss/DocumentRoot -type f -exec chmod 644 {} \;
# ④ 必要なディレクトリを事前作成
mkdir -p /home/kusanagi/webcss/DocumentRoot/wp-content/upgrade
mkdir -p /home/kusanagi/webcss/DocumentRoot/wp-content/cache/autoptimize/
chown -R httpd:www /home/kusanagi/webcss/DocumentRoot/wp-content/
# ⑤ FS_METHODを正しいwp-config.phpに追記(場所に注意!)
echo "define('FS_METHOD', 'direct');" >> /home/kusanagi/webcss/wp-config.php⚠️ wp-config.phpの場所に注意!
❌ 間違い:/home/kusanagi/webcss/DocumentRoot/wp-config.php
✅ 正解:/home/kusanagi/webcss/wp-config.php(DocumentRootの1つ上)
- □ 全コマンドエラーなしで完了
STEP 8:hostsファイルで動作確認
DNS切り替え前にローカルPCだけConoHaに向けて確認します。
① HSTSをクリアする(Chrome)
Chromeのアドレスバーで:
chrome://net-internals/#hsts
「Delete domain security policies」に webcss.withrun.org を入力して「Delete」をクリック。
② Windowsのhostsファイルを編集する
- メモ帳を管理者として実行
- C:\Windows\System32\drivers\etc\hosts を開く
(ファイルの種類を「すべてのファイル (*.*)」に変更してから選択) - 一番下に以下を追加:
xxx.xxx.xxx.xxx webcss.withrun.org
Ctrl + S で保存。ブラウザで https://webcss.withrun.org を開いてサイトが正常に表示されることを確認します。
⚠️ FirefoxはHSTSエラーが出ることがある。Chromeで確認するのが無難。
- □ HSTSをクリア済み
- □ hostsファイル編集済み
- □ サイトが正常に表示されることを確認
STEP 9:Value DomainでDNS切り替え
コアサーバーのコントロールパネルから:
「ドメイン」→「ドメイン管理」→ withrun.org の「[VALUE-DOMAIN] DNS設定変更」
以下の1行を追加:
a webcss xxx.xxx.xxx.xxx
PowerShellでDNS反映を確認:
nslookup webcss.withrun.org
xxx.xxx.xxx.xxx が返ってくれば反映完了(最大1時間かかる場合あり)。
- □ DNSにAレコードを追加
- □ nslookupで xxx.xxx.xxx.xxx が返ることを確認
- □ hostsファイルから追加した行を削除した
STEP 10:SSL証明書取得
DNS反映確認後にConoHaのターミナルで実行:
certbot certonly --webroot -w /home/kusanagi/webcss/DocumentRoot -d webcss.withrun.org
途中の入力:
| 質問 | 入力内容 |
|---|---|
| メールアドレス | 自分のメールアドレス |
| 利用規約(Y/N) | Y |
| メール配信(Y/N) | N(不要な場合) |
Successfully received certificate. が表示されれば成功。
- □ Successfully received certificate. を確認した
STEP 11:NginxのSSL証明書パスを更新
WinSCPで /etc/opt/kusanagi/nginx/conf.d/webcss.conf を開き以下を書き換え:
変更前:
ssl_certificate /etc/pki/tls/certs/localhost.crt; ssl_certificate_key /etc/pki/tls/private/localhost.key;
変更後:
ssl_certificate /etc/letsencrypt/live/webcss.withrun.org/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/webcss.withrun.org/privkey.pem;
保存後にリロード:
kusanagi nginx --test kusanagi nginx --reload
- □ nginx completed. を確認した
STEP 12:セキュリティ・プラグイン設定の確認
① SiteGuardのログインページ変更を確認する
⚠️ SiteGuardの「ログインページ変更」機能が有効になっていると、CAPTCHA画像が表示されないことがある。移転作業中は無効にしておくのが安全。
WordPress管理画面 → SiteGuard WP Plugin → ログインページ変更 → 無効化
- □ SiteGuardのログインページ変更を確認・無効化
② KUSANAGI Settings:セキュリティタブを確認する
WordPress管理画面 → KUSANAGI Settings → 「セキュリティ」タブ
⚠️ KusanagiはデフォルトでXML-RPCを無効化しています。JetpackはXML-RPCを使うため、無効のままだと連携できません。
「XML-RPC 無効」のチェックを外す → 変更を保存。その後、Jetpackを再連携します。
- □ XML-RPCの設定を確認した(Jetpack使用の場合は有効化)
③ KUSANAGI Settings:自動更新タブを確認する
WordPress管理画面 → KUSANAGI Settings → 「自動更新」タブ
WordPressコア・プラグイン・テーマの自動更新設定を確認・変更します。
KusanagiはデフォルトでWordPressの自動更新を制御しています。プラグイン一覧で自動更新の切り替えができない場合はここで設定します。
- □ 自動更新の設定を確認・変更した
STEP 13:最終動作確認
ブラウザで https://webcss.withrun.org を開いて以下を確認:
- □ 🔒 鍵マーク(HTTPS)が表示されている
- □ サイトのデザイン・記事が正しく表示されている
- □ WordPress管理画面にログインできる
- □ プラグインのインストール時にFTPダイアログが出ない
⚠️ 発生したトラブルと解決方法
トラブル①:DBパスワードが8文字未満でエラー
現象:
kusanagi provision: error: argument --dbpass: DBPASS must have minimum 8 characters
原因: Kusanagiのプロビジョニングコマンドでは8文字以上のパスワードが必須。
解決方法: 8文字以上のパスワードを新たに決めて再実行する。コアサーバーのDBパスワードとは別物なので新しく決めてOK。
トラブル②:Jetpackがインストールされていない
現象:
プラグイン jetpack/jetpack.php はエラーにより停止しました: プラグインファイルが存在しません。
原因: lftpでのミラーリング時にJetpackのファイルが正常に転送されなかった。
解決方法: WordPress管理画面の「プラグイン」→「新規追加」から Jetpack を検索して新規インストールし直す。
Jetpackはミラーリングで転送されないことがある。毎回新規インストールする前提で作業すると良い。
トラブル③:プラグインインストール時にFTP接続情報ダイアログが出る
現象: プラグインをインストールしようとすると「接続情報」ダイアログが表示される。
原因: wp-config.php に FS_METHOD が2つ設定されており、ftpext(古い設定)が direct(正しい設定)より先に読み込まれていた。
確認コマンド:
grep 'FS_METHOD' /home/kusanagi/webcss/wp-config.php
悪い状態(2つある):
define('FS_METHOD', 'ftpext'); ← これが邪魔している
define('FS_METHOD', 'direct');解決方法: ftpext の行を削除する:
sed -i "/define('FS_METHOD', 'ftpext');/d" /home/kusanagi/webcss/wp-config.php削除後に確認:
grep 'FS_METHOD' /home/kusanagi/webcss/wp-config.php
define(‘FS_METHOD’, ‘direct’); だけが表示されればOK。
Kusanagi環境の重要ポイントまとめ
| ポイント | 内容 |
|---|---|
| PHPの実行ユーザー | httpd:www(kusanagi でも apache でもない!) |
| wp-config.phpの場所 | /home/kusanagi/{プロファイル名}/wp-config.php(DocumentRootの1つ上) |
| 親ディレクトリのパーミッション | デフォルトが700のためhttpdが通過できない → 711に変更必須 |
| DBパスワード | 8文字以上必須 |
| lftpの接続 | ftps:// ではなく ftp:// を使う |
| Jetpack | ミラーリングで転送されないことがある → 管理画面から新規インストール |
| XML-RPC | KusanagiはデフォルトでXML-RPCを無効化 → Jetpack使用時は有効化必須 |
トラブル発生時の確認コマンド集
# エラーログ確認(まず最初にここを見る!) tail -20 /home/kusanagi/webcss/log/nginx/ssl_error.log # wp-contentの所有者確認 ls -la /home/kusanagi/webcss/DocumentRoot/wp-content/ # PHPの実行ユーザー確認 ps aux | grep php # wp-config.phpの場所確認 ls /home/kusanagi/webcss/ # FS_METHODの設定確認 grep 'FS_METHOD' /home/kusanagi/webcss/wp-config.php # Nginxの構文チェック kusanagi nginx --test # DNSの反映確認 nslookup webcss.withrun.org
今回の教訓
- DBパスワードは8文字以上で事前に決めておく
- Jetpackは毎回新規インストールする前提で作業する
- FTPダイアログが出たらまず grep ‘FS_METHOD’ で重複を確認する
- SSL証明書取得はDNS反映確認後に行う
- hostsファイルの確認はChromeで行う(FirefoxはHSTSエラーが出やすい)
- KUSANAGI Settings のセキュリティタブ・自動更新タブを移転後に必ず確認する







コメント