ある案件で5年以上前に作られたWordpressサイトを最新版にバージョンアップすることになったので、その際の手順を紹介します。

サーバーのバージョンアップで古いサイトが表示されなくなる

要件・依頼内容

クライアント様から「契約しているサーバー会社から『PHP5.4からPHP8.1にアップデートする』との連絡があった。WEBサイトが見られなくなるかもしれないので対応して欲しい。」とのお問い合せを頂きました。

調査結果

クライアントのサイトはWordpress4.2系で作られており、PHP8.1では動作しないことが判明。

WordPressを最新の6.0へバージョンアップする必要が発生しました。

問題点

WP管理画面からWP6.0へアップデートしようとしても、PHPが古すぎて実行できない。そして、先にサーバーのPHPを8.1へバージョンアップしてしまうと、WPが動作せず管理画面に入れなくなるという問題があり、ワンクリックで簡単アップデートはできそうにない。

解決方法

管理画面からはアップデートできないので、Wordpress公式サイトから最新版をダウンロードしてFTPでファイルをアップロードし、その後PHPを切替える方法を選択。

具体的な手順

テスト

  1. テスト環境構築
    まずは現行と全く同じ環境でテストサイトを構築するため、現行サイトと同じバージョンのWPをWordpress公式からダウンロードしインストール。その後、「All in one WP migration」プラグインで現行サイトからデータインポートするのが手っ取り早くて楽です。
  2. PHP8.1で確認
    テストサーバーのPHPを8.1にバージョン切り替えてみる。今回の件ではWPの管理画面すら入れなくなり、動作しないことが判明。
  3. テーマファイル確認
    テスト環境のWPを最新(6.0)にアップデートして動作確認。管理画面には入れるようになったが、テーマファイルにエラーやWarningが出たので、一つずつ修正して潰していく。

本番環境バージョンアップ下準備編

PHPバージョン切換えをスムーズに実施するための下準備をしておきます。

  1. バックアップ作成
    ここも「All in one WP migration」プラグインでバックアップ取るのが簡単でオススメです。
  2. 最新版のWordpressをFTPでアップロード
    現行版は/wp/ディレクトリにインストールされていたので、別ディレクトリ/wp6/を作ってその中にアップロード。
  3. プラグイン「All in one WP migration」をアップロード
    /wp6/wp-config/plugins/ に「All in one WP migration」プラグインをアップロード。場合によってはサーバー側のアップロードサイズを変更できないことがあるので拡張プラグイン「Unlimited Extension(無制限版)」も同時にアップロードしておく。
  4. wp-configをコピー
    現行の/wp/wp-config.php を/ver6/ へコピーする。

本番バージョンアップ実施編

  1. メンテナンスページに切換え
    WP maintenanceとかプラグインを使いたかったが、WPのバージョンが古すぎて動作せず。仕方がないので仮のindex.htmlをアップして「メンテナンス中」を表示。
  2. PHPバージョン切換え
    サーバーコントロールパネルから手動でPHPバージョンを5.4から8.1へ変更。
  3. ディレクトリ差替え
    旧 /wp/ディレクトリを別名(wp-oldとか)に変更し、wp6ディレクトリをwpにリネーム。
  4. データ復元
    管理画面へログインし、プラグイン「All in one WP migration」及び「unlimited extension」をアップデートした後、All in one WP migration からバックアップデータを復元(インポート)する。
  5. データベースを更新
    インポート後、「データベースを更新しますか」と聞かれるので「はい」を選んで更新。
  6. テーマファイル更新
    テストで修正したテーマファイルをアップロードします。
  7. プラグインをすべてアップデート
    古いプラグインを最新版にアップデートする。一部最新のWordpressに対応できていないプラグインもあるので削除するか代用品をインストールする。ちなみの今回はContact Form7の送信データを保存する「Contact Form DB」が動作しなかったので、代わりにFlamingoをインストールしておきました。
  8. お問合せフォームを修正
    Contact form7 の動作検証を行うとエラーが出ていたので修正し、フォーム送信確認を行う。
    ”year”など一部のタグ名が使えなくなっていたり、メールアドレスを必須項目にしなくてはならない、など仕様が変更になっている。
  9. Classic Editor プラグインをインストール
    クライアントは新しいブロックエディタに使い慣れていないので、従来のClassic Editorをインストール。「投稿設定」からデフォルトエディターを「旧エディター」に指定。
  10. パーマリンク設定を更新
    不要かもしれないけど、念のためパーマリンク設定を更新しておく(変更はせず、更新ボタンを押すだけ)。
  11. テスト投稿
    記事を投稿してきちんと更新できているか確認。同時に画像やアイキャッチ、カテゴリーの指定も確認する。確認したらテスト投稿は削除。
  12. 公開
    一通りページをチェックしたら、メンテナンスページを削除してサイトを公開する。
  13. 旧バージョンを削除
    /wp-old/ディレクトリは必要なければ削除する。残す場合はパーミッションを400にするなどしてアクセス制限掛けておく。

総評

マイナーバージョンアップや5.9→6.0などの直近のバージョンアップであればWordPress公式にも紹介されている手順通り、 /wp-admin/ と /wp-includes/ だけを削除して /wp-content/を残して、新しいのと入れ替える方が簡単です。

今回は4→6とメジャーバージョンを2世代以上をまたいだバージョンアップということで、更新漏れや削除漏れがないように、ぜんぶ綺麗にしてしまおうということでちょっと回りくどい手順を踏んでみました。

もしかしたら普通にwp-adminとwp-includesを入れ替えるだけで良かったかもしれませんが、アナザーオプションということで載せておきます。

投稿者プロフィール

vivitasAdmin

ビビタスの最新情報をお届けします

用途に応じた料金プラン

桁違いのホームページ制作
基本制作費9,800円。地方の中小企業・個人事業のためのホームページ制作。
とにかく安く運用したいという方から、しっかり活用していきたいという方まで、目的・用途に応じた機能と料金プランをご用意。