
Wordpressのダウングレードをする手順(ファイル上書き・PHPバージョン、DB再インポート)
Wordpressのアップグレード・ダウングレードは、構成ファイル(wp-admin、wp-includes、topファイル群)を指定バージョンのものに上書きすれば可能です。
ただし今回の案件の様にエラーが出る場合があります。今回はwp-config.phpでエラー表示モードにして確認した事で、PHPバージョンが上がっていた事がわかりました。
今回はDBデータも一部消失していたので、バックアップをインポートし直して復旧しています。何よりもまずはバックアップを取るべきです。
Wordpressのダウングレードをした経緯
本記事は、Wordpressのバージョンを最新バージョンから旧バージョンへダウングレードした際の覚書です。
発端は、Wordpressサイトを別サーバーへ移転するクライアント案件時に発生したトラブルでした。
アップグレードした事でサイトが表示されなくなったため、急遽元のバージョンに戻す事になった訳です。
サイト譲渡によるサーバー移転
この案件は「サイトの譲渡」が目的であり、サーバー引っ越する際にWordpressサイトの所有権が別の管理者に移ります。
元の管理者はかなりの知識レベルがある人でしたが、サイトを買った側は初心者の様です。
両者の間に入って移転作業をするにあたり、買取側に知識がなさそうなのはすぐにわかりました。
クライアントが勝手にアップグレード
右往左往して時間が掛かってしまいましたが、何とか作業完了までこぎ着けました。
テスト確認・ネームサーバー切替・SSL証明書の設定まで、一通り終了した事を報告します。
「これで作業終了です」「また何かありましたらお気軽にご連絡下さい」と、お電話でお礼の挨拶をしました。
ところが電話を切った5分後、すぐにクライアントから掛かってきました。
「サイトが表示されなくなりました」との事。
表示されなくなったサイトの復旧
サイトを確認してみるとTOPページが「404」の表示がされています。
当事者曰く、Wordpress管理画面上に「アップグレード」と書いてあったので、それを押してしまったとの事。
元の管理者から「壊れやすいから注意して欲しい」と前もって忠告を受けていたのに、不意にやってしまったらしいのです。
追加料金でダウングレード
ともかくアップグレードされたWEBサイトを元に戻さなければなりません。
追加料金の見積金額を提示した上で、取り急ぎWordpressをダウングレードする事になります。
それと同時に「更新作業以外の部分には基本的に触らない事」を約束してもらいます。
旧バージョンのWordpress構成ファイルを準備
元のバージョンは「5.0.16」、それに対し最新バージョンは「6.1.1」です。
6.1.1の状態を、元の5.0.16の状態にする必要があります。
本案件は、元の管理者からWordpressのデータを丸ごと受け取りしていました。
wp-content以外にwp-admin、wp-includesまで全ての構成ファイルを送ってもらっています。
つまり5.0.16の構成ファイルが手元に揃っている状態なのですね。
手元に対象バージョンが無い場合
ファイルが手元に無い場合は、対象バージョンを公式サイトからダウンロードする必要があります。
ダウングレードしたい「バージョン数」を確認しておきましょう。
Wordpressパッケージダウンロード
上記サイトからZIPファイルをダウンロードしたら、解凍しておきます。
中身はFTP上で確認できる構成と全く同じものですので、安心して下さい。
Wordpress構成ファイルを上書き
手元にファイルが準備できたら、まずはFTPソフトなどでサーバーに接続します。
Wordpressの構成ファイル
Wordpressの構成が一通り見えていると思います。
アップグレードした事で、各フォルダやファイル実際の更新日付が変わっているはずです。
Wordpressの構成ファイル群は以下の4つです。
・wp-admin
・wp-content
・wp-includes
・index.phpやwp-configなどのファイル
アップグレードやダウングレードは、いずれもこれらファイル群が置き換わる事によって反映されるのですね。
ですのでFTP上のファイルを、今回ダウンロードしたファイルに置き換えれば良いのです。
wp-content以外を上書き
まずは「wp-content以外」の全てのファイルを、サーバー側にUPして上書きします。
wp-adminやwp-includesは中のファイル数が多いので、少しずつ刻んでアップしましょう。
wp-contentについて
wp-content内データは、基本的にアップグレード・ダウングレードの対象に含まれません。
つまりwp-adminやwp-includes・TOPファイル一式を元に戻せば、Wordpressのバージョンは元に戻る訳です。
wp-content部分だけはダウンロードしてきたファイルではなく、移転元のデータを使う必要があります。
wp-content内で上書きするファイル
wp-contentは上書きしないと言いましたが、いくつか例外があります。
例えばwp-content内のlanguageフォルダは、日付が更新されている場合があります。
※languageフォルダには、日本語翻訳のファイルが入っています。
更新日付が変わっている場合は、languageフォルダを丸ごと上書きしておきます。
更新されている日付で判断
それ以外は更新日付を確認した上で判断しましょう。
・themes/
・plugins/
・uploads/
更新日付が変わっていても、不要なものは上書きしなくて良いです。
PHPバージョンの変更
次に移転先サーバーのコントロールパネルに入ります。
目的はそのドメインに現在設定されているPHPバージョンを確認する事です。
この時点ではTOPページの404エラーは依然として解消されていません。
PHPバージョンが上がっていた
実際に確認すると、PHPバージョンが「7.3系」なっていた事がわかりました。
ここは移転作業時に、こちらで任意に「5.6系」に変更していた部分です。
Wordpressの5.0系のPHP動作環境は「5.2.4-7.3」で、推奨環境は「7.3」です。
元サーバーではPHP「5.6」を使っていたので、それに合わせた形です。
結果「5.6」に再度変更しました。
アップグレード時に「PHPバージョンも変更される」とアナウンスが出ていたかもしれませんが、クライアントにはわかりませんよね。
エラーモードで判明
実は最初からPHPバージョンを確認しようと思った訳ではありません。
404エラーになっている原因を探るため、wp-config.phpをエラーモードに設定してみた訳です。
wp-config.phpを編集
wp-config.php 84行目付近 define('WP_DEBUG', true); falseとなっている部分をtrueに変更しましょう。
すると「今のバージョンでは推奨されないphp命令部分がある」という類のエラーが出ていました。
これを見て「もしや」と思ったのです。
変更する必要が無い場合もある
今回はWordpress5.0系の動作環境範囲内にあるPHP「7.3」でも、エラーが出ていました。
しかし「7.3」は本来動作環境内な訳ですから、エラーが起きない場合もあるはずです。
その辺りはサイトによって様々です。
とにかくwp-config.phpのエラーモードで確認しておくようにしましょう。
以前として表示が崩れたまま
PHPを「5.6」に戻してサイトを確認してみましたが、404エラー表示が直りません。
しばらく思案して、旧サーバーデータを見てみる事にしました。
旧サーバーと新サーバーのWordpressデータを、見比べてみる事にしたのです。
hostsファイルで別PCのサーバー先を変更する
本件はサーバー移転作業直後であり、移転元と移転先とがまだ両方存在している状態です。
ですので、移転元サーバーには5.0.16のWordpressサイトがまだ残っているのです。
事務所内にあるサブPCのhostsファイルを編集して、DNSを移転元サーバーに向けます。
これでサブPCは、旧サーバーのWEBサイトの表示・管理画面ログインができる様になります。
移転元と移転先の両データを比較
メインPCで移転先の管理画面、サブPCで移転元の管理画面に入って検証してみました。
・メインPC…移転先6.1.1のWordpress管理画面
・サブPC…移転元5.0.16のWordpress管理画面
固定ページ「トップページ」が表示先として選択
TOPが404エラーなので、管理画面の設定メニュー→「表示設定」欄を開きます。
元データでは、ホームページ表示先として固定ページの「トップページ」が選択されています。
これが移転先では「トップページ」という名前の固定ページ自体が選択できないのです。
固定ページが消えている
固定ページを確認してみると、以下の様な事がわかりました。
移転元の固定ページ数…48件
移転先の固定ページ数…24件
これは、かなりの数の固定ページが消えている事を指しています。なんという事でしょう。
消えた固定ページの中に、トップページも含まれていたという事ですね。
選択したトップページが無くなっていたため、404エラーになっていた訳です。
なぜこれだけの数の固定ページが無くなっているのかは不明ですが、アップグレードした事が原因であることは間違いないでしょう。
DBデータの再インポート
もちろんDBデータも元管理者から受け取っています(過去時点のデータですが)。
消失したデータを復旧させるため、phpMyAdminからMySQLのDBデータを入れ直すしかありませんね。
このDBデータをもう一度インポートしてみる事にしました。
既存テーブルを削除
インポートする前に、現在のMySQLテーブルデータを一度削除(或いはリネーム)する必要があります。
同じ名前のテーブルがある場合、インポートしても上書きはされずに別名で入るためです。
データベース内の対象のテーブル一覧でチェックをつけて削除します。
接頭語の確認をする事
テーブルデータは接頭語「wp_」で始まるテーブルが多いと思います。
対象のWordpressサイトが、どの接頭語を使っているのか確認をしておきましょう。
上記画像の様に、1つのDB内に複数の接頭語テーブルが存在する場合があります。
これは1つのDBで複数のWordpressを使い回している事を示しています。
接頭語をそれぞれ変えて、共存させている訳です。
テーブルを消す際は他の接頭語テーブルを消さない様に、十分注意しましょう。
WEBサイトが無事復旧
テーブルデータをインポートして確認すると、移設元と同じように48件の固定ページが表示されるようになりました。
さらに管理画面の設定→表示設定欄で、固定ページの「トップページ」が選択された状態になっていました。
そしてようやく、WEBサイトのトップページが無事表示されました。
これで無事にWordpressのダウングレードが終了した事になります。
やれやれ、ほっと一安心です。
ダウングレードのおさらい
まとめの意味でおさらいしておきましょう。
以下の3つに気を付ければ、Wordpressのアップグレード・ダウングレードは自在にできます。
・Wordpress構成ファイル
・PHPバージョン
・DBデータ
構成ファイルを各バージョンに揃える
これまでリリースされた、各バージョンのWordpressデータはいつでもダウンロードできます。
まずは、そのバージョンの構成ファイルに上書きする事です。
これで大体の場合、アップグレード・ダウングレードができるはずです。
元々使っているwp-content内のテーマやplugins内データに、変更が加えらえる事はほぼありません。
wp-contentのlanguageフォルダには気を付けておきましょう。
PHPバージョンの確認
次に念のためwp-config.phpをエラー表示モードにし、エラーが出ていないかどうか確認してみて下さい。
エラーが出る様であれば、ドメインで稼働させているPHPバージョンを確認しましょう。
仮にエラーが出ていなくても、今回の様にPHPバージョンが変わってしまう場合もあります。
事前にPHPバージョンは見ておくべきですね。
DBデータ
本来アップグレード・ダウングレードをしても、MySQLのバージョンが変わったりはしません。
ですので、MySQLのDBデータはそのまま使えるはずです。
ですが今回は、何らかの理由でデータが消えていました。
結果テーブルを削除してインポートし直す手段を取りました。
この様なケースがありますので、アップグレード・ダウングレードの前にはDBデータをバックアップしておきましょう。
今回は元テーブルを接頭語に注意しつつ削除したりインポートしたりしましたが、本来はする必要が無いはずです。
最初からアップグレードした場合
今回のサイトは、そのままではWordpressのアップグレードは難しいサイトだったのでしょう。
厳密には「途中からのアップグレードはできなかった」という事ですね。
では移設時にWordpress最新バージョンをインストールし、中にwp-contentデータやDBデータを移設していたらどうなっていたのでしょうか。
つまり最初からアップグレードしていた場合ですね。
その時同じエラーが出るかどうかは、やってみないと正直分かりません。
最初からアップグレードする・途中からする、いずれの場合もバックアップは必ず取っておくようにしましょう。