先日、人様が作ったWordPressサイトのセキュリティアップデートの仕事を承りました。
結論から言えば、PHPを7.4から8.5に上げたら画面が真っ白になり、原因はプラグインではなくテーマファイルでした。
WordPress本体のアップデートは問題なく終わっていました。しかし、PHPのバージョンアップで致命的なエラーが出てしまったんです。
今回は、そのときに何を疑い、どう切り分け、どう直したかを、後で自分が見返すためのメモも兼ねてまとめます。
まず、作業の前に何をしたのか
他人が作ったサイトを触るときは、最初に「戻せる状態」を作ります。
今回やったのは、次の2つです。
- FTPで、サイトのファイルを丸ごとダウンロードする
- phpMyAdminで、データベースのバックアップを取る
どちらも地味な作業です。しかし、PHPのバージョンを上げるときは、画面が真っ白になる可能性があります。そうなってから「バックアップを取っておけばよかった」では遅いんですよね。
ちなみに、先日は別のサイトで、Contact Form 7を最新版にしたら白紙になる、ということもありました。そのときはすぐ戻せる体制にしてあったので、影響はありませんでした。今は自動更新を止めています。
何が起きたのか
流れはこうです。
- WordPress本体をアップデートする(問題なし)
- サーバーのPHPを7.4から8.5にバージョンアップする
- サイトを開くと、画面が真っ白になる
「画面が白い」だけでは、何が悪いのか分かりません。ここから原因探しです。
なぜ、プラグインを疑ってしまうのか
こういうとき、まず疑うのはプラグインです。
昔の僕なら、プラグインを一個ずつ外して、そのたびに動作確認をしていたと思います。時間がかかるうえ、原因が見つかる保証もありません。
実は今回も、頭の中ではプラグインを疑っていました。
しかし、結果は違いました。犯人はテーマファイルです。PHP8に対応していなかったんです。
プラグインばかり疑いがちですが、盲点はテーマでした。
今回は、AIにコードを調べさせました
今回は、一個ずつ外す代わりに、AIにコードを調べさせました。
やったことはシンプルです。
- AIに、サイトのコードを読ませて、PHP8で動かない箇所を探してもらう
- AIが見つけた不具合と、直し方の提案を見る
- 内容を確認して、僕が承認する
承認するのは僕です。AIの提案をそのまま入れるのではなく、何をどう変えるのかを確認してから進めます。
その結果、テーマファイルのPHP8に対応していない部分が見つかり、該当箇所を修正して、無事にアップデートできました。
バージョンアップの作業自体は、1時間ほどでした。
他人が作ったWordPressをPHP8に上げる前に確認する3つのこと
今回の経験から、次の3つは先に確認したいと思いました。
確認すること1:戻せる状態を作ってから触る
FTPでファイルを、phpMyAdminでデータベースを、それぞれバックアップします。
作業が終わるまで、このバックアップは消さないでください。
確認すること2:本体・プラグイン・テーマを分けて考える
エラーが出たときに、プラグインだけを疑わないことです。
- WordPress本体は動いているか
- プラグインは対応しているか
- テーマは対応しているか
この3つを切り分けて見ます。今回は、本体もプラグインも問題がなく、テーマでした。
確認すること3:テーマがPHP8に対応しているか
他人が作ったテーマは、いつ、誰が、どんな書き方で作ったのかが分からないことがあります。
自作のテーマや、昔のテーマをそのまま使っているサイトは、PHPのバージョンを上げた瞬間に動かなくなることがあります。今回は7.4から8.5へ、一気に大きく上げたので、なおさらでした。
「プラグインは最新だから大丈夫」と思っていても、テーマは別です。
更新を止めたままのサイトは、あとで重くなる
もうひとつ、思ったことがあります。
更新を止めたままのサイトは、いざ上げるときに作業が重くなります。
PHPも、WordPressも、プラグインも、少しずつ上げていればエラーの範囲も小さいです。しかし、長く止めていると、一度に直すことが増えて、原因も探しにくくなります。
とはいえ、勝手に更新されるのも怖いんですよね。Contact Form 7の件のように、自動更新で白紙になることもあります。
だからこそ、自動更新は止めたうえで、バックアップを取ってから、自分のタイミングで上げる、というやり方が現実的だと思っています。
というわけで
PHPのバージョンアップで画面が真っ白になったら、まず疑うのはプラグインだけではなく、テーマです。
そして、その前に、バックアップを取っておくことです。
AIにコードを調べてもらえば、原因探しはかなり早くなりました。ぜひ、困ったときは試してみてください。
もし、「自分のサイトのPHPを上げたいけど、怖くて手が出せない」「制作会社と連絡がつかなくなった」という方は、お気軽にご相談ください。
コメントを残す