現在「保留」、進捗 70%。工程は全18件中 13件完了。
残りの工程: 依頼者へhosts設定を依頼し、目視で確認してもらう / S3上の画像の扱いを依頼者に確認(AWS停止可否の判断材料) / DNS切替(re-re.jp のAレコードをXserverへ) / 切替後の全ページ動作確認とSSL設定 / AWS環境の停止・解約判断
AWSサーバからX-serverへ運用サーバを変更
sv3059.xserver.jp
から
plus-re-cosme.z-hosts.com
の変更
(1)WordPressサイトのURLについて
https://re-re.jp/cosme/
(2)AWSの反映ファイルについて
/public_htmlの
cosmeをダウンロードし、それをアップロード
その後(public_html)のファイルを全部アップ
(3)反映先パス
re-re.jp/public_html/ へ/cosmeをアップロード
https://gyazo.com/f78bcc763cdb3e39fc798491eea938e3
↓
https://gyazo.com/e4ffb0b8269c3eea6d5d45e7e96fc749
中田
【7/31 作業報告】SSH不可の件は別手段で解決し、移行が完了しました
■ データベース取得手段の変更
SSH接続は最後まで許可されませんでしたが、代替手段でデータベースを取得しました。
・依頼者よりご提案いただいた WP-DBManager プラグインを使用
・最新版はインストール不可だったため、旧バージョン(2.80.10)を手動で導入
(最新版は WordPress 6.0以上 / PHP 7.4以上 が必要。移行元は WordPress 5.7.15 / PHP 7.2.32)
・移行元サーバの WordPress・PHP のバージョンは変更していません
■ データベースの移送(完了)
・WP-DBManager でダンプを取得(cosmeq_wp1 / 圧縮後 68MB)
・取得後に内容を検証
テーブル数 27(管理画面の表示と一致)
ファイル末尾に Dump completed の記録あり(途中で切れていないことを確認)
移行先の MariaDB で問題となる文字セット表記は 0 件
・Xserver のデータベース(cosmeq_cosme)へインポート(816クエリ実行)
■ ファイルの移送(完了)
・re-re.jp/public_html/cosme/ へアップロード
・アップロード直後は表示できず、原因を調査した結果、複数のフォルダが
転送されていないことが判明したため、順次アップロードし直しました
wp-includes / themes / plugins / uploads
■ 設定変更(完了)
・wp-config.php のデータベース接続情報を移行先の内容へ変更
・Xserver の PHP バージョンを 7.3 系へ設定
(移行元が 7.2.32 のため、条件を揃える目的。初期状態は 7.0.33 でした)
・wp-config.php 22行目に記述の誤りがあり、修正
(移行元では警告が非表示だったため表面化していなかったもの)
■ 動作検証(完了)
DNSを切り替えずに、接続先を移行先サーバへ固定した状態で全ページを確認しました。
・トップページ、記事ページ3件、ログイン画面、404ページ、REST API
・いずれも移行元(AWS)と移行先(Xserver)で
HTMLの容量がバイト単位まで完全に一致
・エラーの出力は 0 件
移行先で、移行元とまったく同じ内容が表示されている状態です。
■ 確認いただきたいこと(2点)
【1】表示のご確認
DNSはまだ切り替えていないため、通常のアクセスでは移行元(AWS)が表示されます。
移行先を確認していただくには、お使いのPCで hosts ファイルの設定が必要です。
202.254.234.60 re-re.jp
設定後、下記URLでご確認いただけます。
https://re-re.jp/cosme/
https://re-re.jp/cosme/allinonegel-perfectone.html
https://re-re.jp/cosme/wp/wp-admin/
設定手順が必要でしたらお知らせください。
【2】画像の取り扱いについて
サイト内の画像は static.re-re.jp から配信されており、
実体は AWS の S3 に保存されています(CloudFront経由)。
トップページだけで69件、全記事分がこの経路です。
WordPress本体は Xserver へ移行できますが、画像は AWS 上に残ったままです。
AWS環境を停止・解約された場合、サイト内の画像がすべて表示されなくなります。
・S3とCloudFrontはAWSに残す想定でしょうか
・それとも画像も含めて完全に移行する必要がありますか
後者の場合、記事本文中の画像URLの一括置換が必要となり、作業範囲が変わります。
■ 今後の流れ
現時点で、当方の作業としては 3 の日程調整待ちの状態です。
中田
【SSH接続不可の検証結果】
■ 事象
移行元サーバ(plus-re-cosme.z-hosts.com / ユーザー re-re.jp / ポート10022)へ
SSH接続を試みると、下記メッセージで切断されます。
This service allows sftp connections only.
Connection to plus-re-cosme.z-hosts.com closed.
■ 認証情報の誤りではないことの検証
同一環境で、パスフレーズを意図的に変えて比較しました。
・正しいパスフレーズを入力した場合
This service allows sftp connections only.
・誤ったパスフレーズを入力した場合
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
認証に失敗する場合は Permission denied が返り、
認証に成功した場合のみ「sftp connections only」が返ります。
つまり鍵とパスフレーズは正しく、認証は通過しています。
また、同一の鍵・同一アカウントで SFTP 接続は成功しており、
public_html/cosme のファイル一式は既にダウンロード完了しています。
認証情報が誤っていれば SFTP も接続できません。
■ 原因
認証を通過した直後に、サーバ側が接続を切断しています。
このメッセージはサーバのSSHデーモンが出力するもので、
接続元(こちら側)の設定では発生しません。
当該アカウントに対し、サーバ側で SFTP 専用の制限
(ForceCommand internal-sftp 等)が設定されている状態です。
■ 何ができないのか
・SFTP … ファイルの送受信。現在も利用可能
・シェル … サーバ上でコマンドを実行する機能。現在利用不可
データベースの取り出しに使う mysqldump はコマンドであるため、
シェルが使えない状態では実行できません。
ファイルは移送できても、データベースの中身が取り出せません。
■ 依頼中の内容
目的はデータベースの取得のみであるため、下記のいずれかで進行可能です。
1番が最短です。4番は当方で作業可能ですが、稼働中の本番サーバへ
一時的にファイルを設置することになるため、事前許可が必要と判断しています。
■ 補足
以前(6年ほど前)は同アカウントでSSH接続ができていたとの情報があります。
その後のサーバ側の設定変更でシェル利用が無効化された可能性があります。
中田
【7/30 作業報告】
■ 実施内容
AWSからファイル一式をダウンロード
AWSサーバへSFTPで接続し、public_html/cosme/ ディレクトリを丸ごとダウンロードしました。
Xserverへアップロード
re-re.jp/public_html/ 配下へ cosme ディレクトリを丸ごとアップロードしました。
Xserverでデータベースを作成
サーバーパネルにログインし、以下を作成しました。
・データベース
名称: cosmeq_cosme
文字コード: UTF-8 (utf8mb4)
メモ: re-re.jp/cosme/ 20260730
・データベースユーザー
名称: cosmeq_mig
メモ: re-re.jp/cosme 20260730
・作成したデータベースへ、作成したユーザーのアクセス権を付与
wp-config.php の接続情報を変更
re-re.jp/public_html/cosme/wp/wp-config.php を、上記で作成したデータベースの情報へ書き換えました。
DB_NAME : cosmeq_cosme
DB_USER : cosmeq_mig
DB_PASSWORD : 変更済み
DB_HOST : localhost
■ 現在の状況
ファイルの移送とデータベースの受け皿の準備までが完了しています。
データベースの中身(記事・設定等)の移送はこれからです。
■ 課題
移行元サーバ(plus-re-cosme.z-hosts.com / ユーザー re-re.jp)は SFTP 接続のみ許可されており、
SSH でのシェル接続が拒否されるため、データベースのダンプ取得ができない状態です。
また、当該サーバのコントロールパネルに phpMyAdmin がありません。
SSH 接続が可能なアカウントの共有を依頼中です。
【8/3 作業報告】画像のS3からの移行が完了しました
■ 移行対象の画像の実態調査
AWSのS3へ接続し、対象を確定しました。
・バケット内の対象は cosme/img/ 配下のみ(他サイトの混在なし)
・ファイル数 26,546件 / 容量 約1.78GB
・内訳 jpg 24,456 / png 1,413 / webp 437 / gif 134 / その他106
■ 画像のダウンロードと移送(完了)
・S3から全26,546件をダウンロード
・ダウンロード後、S3側とファイル数・容量が完全に一致することを確認
26,546ファイル / 1,913,108,443バイト(1バイトの差異もなし)
・Xserverの re-re.jp/public_html/cosme/img/ へアップロード
・アップロード前の時点では、S3にしか存在しない画像が約7,700件不足していました
■ 画像URLの置換(完了)
サイト内の画像URLを、S3のドメインからXserverのドメインへ変更しました。
https://static.re-re.jp/cosme/img/...
↓
https://re-re.jp/cosme/img/...
置換した箇所
・記事本文 29,033件
・カスタムフィールド 1,359件
・テーマ内の各種設定 14件
・テーマファイル 1,857箇所(PHP・CSS 41ファイル)
記事本文には3種類の書き方が混在していました。
・正常な記述 28,993件
・スラッシュが3本の記述 39件
・スラッシュが1本の記述 1件
後ろの40件は移行前から存在していた記述ミスで、ブラウザが補正して
表示していたため表面化していなかったものです。すべて修正済みです。
■ 画像配信プラグインの停止(完了)
画像をS3へ退避・配信するプラグイン(WP Offload Media)を無効化しました。
有効なままだと、URLを置換しても再びS3のURLへ書き換えられてしまうためです。
■ 動作検証(完了)
DNSを切り替えずに、接続先を移行先サーバへ固定した状態で確認しました。
・トップページ 画像24件すべて表示 / S3のURL残存0件
・カテゴリページ8種 画像5〜69件すべて表示 / S3のURL残存0件
・記事ページ 画像44件すべて表示 / S3のURL残存0件
・ファイル名に日本語や記号を含む31件も文字化けなく表示
・全体からの抽出検証319件 すべて正常表示
置換前はカテゴリページに最大44件のS3参照が残っていましたが、
現在はすべてのページでS3への参照が0件になっています。
■ 現在の状態
AWS環境を停止しても、サイト内の画像が表示されなくなることはありません。
Webサイト本体・データベース・画像のすべてがXserver側で完結しています。
■ 補足
データベース内に amazonS3_cache という項目が1,629件残っていますが、
これは停止済みプラグインが生成した内部キャッシュで、
サイトの表示には一切使用されません。全ページで表示に影響がないことを
実測で確認済みです。
■ 残作業
当方の作業としては、DNS切替の日程調整待ちの状態です。