日別アーカイブ: 2023年10月10日

【WordPress】PHP8.0に変更したらエラー発生!Count Per Dayが原因だった

当ブログは、ブログ用CMSとして世界的に活用されているワードプレス(WordPress)を使って作成しております。ワードプレスは、PHP(プログラム言語)とMySQL(データベース)で構成されています。また、PHPはセキュリティならびにパーフォーマンス向上のため、定期的にバージョンアップされています。

セキュリティホールやバグなどで、WordPress 本体やテーマ、プラグインのバージョンは常に最新であることは言うまでもありませんが、併せてPHPも最新バージョンでなければなりません。

しかしながら、プラグインやテーマによっては、PHPの最新バージョンと合わず、画面が真っ白になったり、レイアウトが変わったりすることがあります。

プラグインのバージョンアップで解決することもありますので、いきなり最新バージョンのPHPではなく、その一つ前か二つ前のバージョンで、段階的にプラグインとの相性を確認しながら更新しています。PHPバージョン変更は、利用しているレンタルサーバー(ロリポップ)側の管理画面で行います。

私の場合、順次更新していますが、直近2年間は、PHP7.4(PHP5.3 ⇒ 5.6 ⇒ 7.1 ⇒ 7.4)を利用していました。現在 ロリポップではバージョン8.2まで利用が可能になりました。ぼつぼつ新しいバージョンに更新した方がよかろうと、先日 PHP7.4からPHP8.0(CGI版)に変更したのですが大変なことになりました。

変更してから反映する約10分後に、管理画面にログインしようとしたところ、画面全体が真っ白になり、以下のごとく画面上部に「このサイトで重大なエラーが発生しました」と表示され、ログインすることができません。また当ブログ「オヤジの悠々人生」のURLをクリックしても、画面が真っ白で、投稿記事はおろか何も表示されません。

落ちついて考えれば分かることですが、再度PHPバージョン7.4に戻せば、元の状態に戻り、管理画面からもログインできた筈なのに、画面が消えたことで、まずは画面を表示させなければという考えが先にたち、ヒントを得るため上記エラー画面のリンクをクリックしました。説明の中にワードプレスのプラグインに問題があるのであれば、プラグイン名称を変えて無効にすることで、ブログ表示が出来ることが分かりました。

まずはそれをやってみようと、レンタルサーバーロリポップの「サーバーの管理・設定」⇒「ロリポップ!FTP」から、WordPressファイル ⇒ wp-content ⇒ pluginsをPlugins-oldに名称変更し「保存する」で更新。

これでブログ管理画面にログイン可能になりましたので、複数あるワードプレスのプラグインのいずれかに問題あることが分かりました。しかしながら、プラグインは無効にしていますので、各プラグインの設定画面は表示されておらず、このままではどのプラグインが悪さしたのか分かりません。

実は、あとで分かったのですが、チェック前に以下のメールが届いており、プラグイン「Count Per Day」に問題ありと指摘されていました。

チェック順序が逆になったのですが、ロリポップサーバー管理画面から、一旦 PHP8.0をPHP7.4に戻して、正常になった管理画面からプラグイン「Count Per Day」を無効・削除した上で、再度PHP8.0に変更したところ、問題なくブログが開きました。

問題のあったCount Per Dayは、投稿別アクセス数や日別・月別の閲覧数・訪問者数、ブログ全体のアクセス解析など、とても使い勝手の良いアクセス解析ツール(プラグイン)で、ブログ開設からずっと利用していました。

しかし、Count Per Dayプラグインは、2019年10月27日、準拠すべきガイドライン違反でワードプレス公式ディレクリーから除外されています。その後も代りのプラグインが見当たらず、バージョンアップされないまま、4年間自己責任で継続していましたが、今回 PHP8.0への変更で利用できなくなりました。残念ではありますが、セキュリティー面からも潮時だと思います。

プラグイン「Jet Pack(ジェットパック)」の機能の中に、日別アクセス数・訪問者数や記事別アクセス数ランキングなども分かりますが、アクセス解析に関してはCount Per Dayにおよびません。

ところが、ネット上で調べているうちに、私が知らなかっただけで、ずいぶん前から「WP Statistics」が、代替プラグインとして紹介されており、Count Per Day同様に設定や使い方が簡単で、仕様もよく似ています。早速インストールして、現在様子を見ていますが、なかなか良さそうです。後日、ネタとして紹介できるかもしれません。