9年運用・500記事超のサイトで実際に行った本番移行の記録です。
- 前提条件
- 本番反映の流れ
- STEP 1:LOCALで最終確認する(PHP8)
- STEP 2:テストサイトのサーバーをPHP7系にダウングレードする(PHP7)
- STEP 3:テストサイトに現行サイトを復元する(PHP7)
- STEP 4:テストサイトにLOCALのPHP8対応済みデータを上書きする(PHP7)
- STEP 5:テストサイトで動作確認する(PHP7)
- STEP 6:テストサイトをPHP8に切り替えて再確認する(PHP7 → PHP8)
- STEP 7:本番サーバーのバックアップを行う(PHP7)
- STEP 8:本番サーバーにPHP8対応済みデータを上書きする(PHP7)
- STEP 9:本番サーバーをPHP8に切り替える(PHP7 → PHP8)
- まとめ
前提条件
今回の案件は、9年前に自分が制作したWordPressオリジナルテーマのリニューアル依頼で、
- PHP7(7.4) → PHP8(8.3)にバージョンアップ
することになりました。
長期運用のため記事数が膨大で、安全に変更する必要がありました。
この記事で扱う「本番反映」の前に、以下の作業はすべてLOCALで完了済です。
- PHP8環境でのテーマコード修正
- プラグインの対応・入れ替え(PHP8対応済)
- 表示・動作確認
この流れ・修正方法については「9年前のWordPressをPHP7からPHP8へ&クラシックエディタからブロックエディタに対応にした実務ログ【全体の流れ】」に詳細を記載しています。
この記事では「LOCAL作業完了 → 本番反映およびPHPのバージョンアップ」の流れのみを記録します。
本番反映の流れ
STEP 1:LOCALで最終確認する(PHP8)
本番環境へ移す前に、LOCAL上で以下を一通り確認します。
- PHP8環境でテーマのエラーが出ないこと
- プラグインが正常に動くこと
- 表示崩れがないこと
ここまでの作業はすべてLOCALで行ってきているので、最終チェックの意味合いです。
問題がなければ次のステップへ進みます。
STEP 2:テストサイトのサーバーをPHP7系にダウングレードする(PHP7)
LOCALでの確認が取れたあと、いきなり本番に反映するのではなく、自分が管理しているテストサーバーで一度本番と同じ流れを実施します。
テストサイトのサーバーパネルから、テスト用サブドメインのPHPバージョンをPHP7系(修正前サイトに近いバージョン)に変更します。
PHP7にダウングレードしたら、テストサイトに
- WordPressをインストール
- All-in-One WP Migrationのプラグインをインストール
します。
STEP 3:テストサイトに現行サイトを復元する(PHP7)
テストサーバーにPHP7のWordPress環境の準備ができたら、
クライアントの現行サイト(PHP7.4で稼働中)をAll-in-One WP Migrationでエクスポート
↓
次に、テストサイトにAll-in-One WP Migrationでインポートして、クライアントの現行サイトを復元します。
データ量が少なけければAll-in-One WP Migration単独で復元できますが、今回はデータ量が多かったため、
- データベースはAll-in-One WP Migrationで出力&アップロード
- 画像、プラグイン、テーマはFTPでアップロード
で復元しました。
これでクライアントの現行サイト環境が復元できました。
表示と動作を一通り確認します。
STEP 4:テストサイトにLOCALのPHP8対応済みデータを上書きする(PHP7)
PHP7で現行サイトの復元が完了したら、いよいよPHP8にバージョンアップするための手順に進みます。
流れとしては
- データを先にアップロード&反映
- 次にPHPをバージョンアップ
で進めます。
まず、LOCALのPHP8対応済みデータを下記手順でアップロードしました。
| 対象 | 方法 | パス |
|---|---|---|
| DB(投稿・設定) | All-in-One WP Migration | ファイルからインポート |
| テーマファイル | FTP上書き | /wp-content/themes/ |
| プラグイン | FTP上書き | /wp-content/plugins/ |
| メディア(画像) | FTP上書き | /wp-content/uploads/ |
※今回は画像が多かったためこの手順で進めていますが、All-in-One WP Migrationでデータをやりとりできる場合は、All-in-One WP Migrationで進めることをオススメします。
STEP 5:テストサイトで動作確認する(PHP7)
この状態はまだPHP7です。
PHP8対応済みのデータが、PHP7環境でも正常に動くこと(表示と動作)を確認します。
STEP 6:テストサイトをPHP8に切り替えて再確認する(PHP7 → PHP8)
動作確認が終わったら、いよいよPHPのバージョンアップを行います。
サーバーのサーバーパネルから、テストサイトのPHPバージョンをPHP8系に変更します。
切り替え後にもう一度、表示と動作を確認します。
もしエラーが出ている場合は、修正します。
ここで修正した場合は、こちらの修正済みデータを使います
投稿なども実際行って確認し、問題がなければ本番作業に進みます。
STEP 7:本番サーバーのバックアップを行う(PHP7)
テストサイトで問題がないことを確認できたら、いよいよ本番環境への反映に進みます。
手順は下記の通りです。
- 本番サーバーのバックアップを行う
- 本番サーバーに先にデータをアップロード&反映
- 本番サーバーのPHPをバージョンアップ
本番サーバーでは失敗できないため、まずバックアップを行います。
私は、バックアップを2種類のプラグインで取りました。
(「All-in-One WP Migration」と「BackWpup」)
STEP 8:本番サーバーにPHP8対応済みデータを上書きする(PHP7)
バックアップが完了したら、いよいよ移行手順に進みます。
本番サーバーに、PHP8対応済みデータを上書きします。
テスト環境と手順は重複しますが、PHP8対応済みデータを下記手順でアップロードしました。
| 対象 | 方法 | パス |
|---|---|---|
| DB(投稿・設定) | All-in-One WP Migration | ファイルからインポート |
| テーマファイル | FTP上書き | /wp-content/themes/ |
| プラグイン | FTP上書き | /wp-content/plugins/ |
| メディア(画像) | FTP上書き | /wp-content/uploads/ |
※All-in-One WP Migrationで完了できる場合はAll-in-One WP MigrationだけでOKです。
【トラブルメモ】インポート時にエラーが発生
All-in-One WP Migrationでインポートしようとしたところエラーが発生しました。原因は現行サイトのプラグインのバージョンが最新になっていなかったこと。
エクスポート側(LOCAL)とインポート側(エックスサーバー)でバージョンを揃えておくことが必須です。最新版にアップデートしたら解決しました。
この状態はまだPHP7です。
PHP8対応済みのデータが、PHP7環境でも正常に動くこと(表示と動作)を確認します。
STEP 9:本番サーバーをPHP8に切り替える(PHP7 → PHP8)
表示に問題がないことを確認できたら、本番サーバーのPHPバージョンを変更します。
本番サーバーパネルにログインし、PHPのバージョン切替から対象ドメインのバージョンを変更します。
切り替え後は本番サイトでも動作確認を行い、表示・投稿まわりに問題がないことを確認して完了です。
まとめ
今回は9年運用・500記事超のWordPressサイトをPHP7.4からPHP8へ移行した本番反映の手順を記録しました。
ポイントをまとめると以下のとおりです。
- LOCAL → テストサーバー → 本番サーバーの3段階で進める
- テストサーバーでは本番と同じ手順を一度通しておく
- All-in-One WP Migrationはエクスポート・インポート両側のバージョンを事前に揃えておく
- 本番作業前のバックアップは必ず複数手段で取る
長期運用サイトほど「いきなり本番」は危険です。テストサーバーで一度通しておくだけで、本番での事故リスクがぐっと下がります。
PHP移行を検討している方の参考になれば幸いです。

