ワードプレス(WordPress)

PHP7.4のサポート期限が終了したので既存のWordPressのサーバー設定を見直しPHP8.xにしました

この記事は約8分で読めます。

PHP7.4のサポート期限が終了PHP 7.4は11月28日にサポートが終了しました。セキュリティサポートも終了しましたので11月28日以降にPHPの脆弱性が発見されてもセキュリティパッチが提供されません。そのためPHP 7.4を利用しているWordPressは、できるだけ早くPHPのバージョンを8.x以上に対応させる必要があります。
そもそもPHPとは、Webページを動的生成するためのスクリプト言語で、サーバーでWordPressを運用するためには必須です。
今回のPHP7.4サポート終了に関してはレンタルサーバー会社からのアナウンスがあまりなく、ホームページを運用している側としても対応が遅れ気味のような気がします。

PHPのバージョンについて

最新バージョンは8.1です

PHPの最新バージョンは8.1xです。(今後順次進んでいくと思われます)

エックスサーバーではPHPのバージョンについて以下のように説明されています。

PHPのバージョンについて | レンタルサーバーならエックスサーバー
レンタルサーバー「エックスサーバー」のご利用マニュアル|エックスサーバーでご利用可能なPHPのバージョンについてや、管理ツール上からPHPバージョンを切り替える方法についてご案内しています。

ここで気になるのがPHP7.4の表示です。

WordPress推奨バージョンです。
今後バージョンアップの予定はないため新規での利用は推奨しませんが
Wordpressの利用においては推奨。

この微妙な表現の解釈には苦慮します。
PHPのバージョンは8.x以上にすべきはずなのに、WordPressの推奨PHPバージョンが7.4というのはなんだかよくわからない表現ですよね。

この微妙な表現には理由があります。

PHPバージョンを切り替えたらサイトが表示できなくなることがあります

実は、PHPのバージョンによってはWordPressがうまく動作しないかもしれません。

とくにデザインテーマを独自カスタマイズしていたり、プラグインを多数入れて仕様がかなり独自になっていたりすると、PHPのバージョンを変更するとWordPressが動かくなるという可能性はかなり高いです。そのような事例はこれまでにも多数あります。

エックスサーバーでは「FAQ」にて
https://support.xserver.ne.jp/faq/service_hp_wp_change_php_not_displayed.php
という紹介があります。

プラグインが不具合の原因かもしれません

実際に、あるアクセス解析系のプラグインがPHP8.xにアップデートしたことで不具合を起こしたことがあります。そのさいのエラー表示は「themes」のパス表示のことがあるので、テーマが原因かと疑われることがあるので要注意です。

プラグインが原因と思われる場合は、いったんプラグインをすべて無効にして丹念にひとつ有効にしていき、不具合を起こしているプラグインをつきとめるという方法があります。

この現象は、レンタルサーバーによっても若干違うときがあります。サーバーによっては問題が起きたり起きなかったりするというプラグインがあります。

実際に、コアーサーバーV2のPHP8.xでは以下のプラグインが不具合を起こしていました。

VK All in One Expansion Unit
VK Block Patterns
VK Blocks
Site Kit by Google
Shortcodes Ultimate

これらのプラグインが無効のままならPHP8.xでワードプレスが表示できました。

しかし、これらのプラグインは、エックスサーバーのPHP8.x環境では問題なく動いています。このあたりが不思議なのですが、現実問題としては対症療法でいくしかありませんね。

デザインテーマがバージョンアップの課題

PHPのバージョンアップができない一番の問題はデザインテーマです。

比較的更新が早い人気のテーマだと、製作者側のほうでPHPやWordPressの最新バージョンに合わせて仕様変更をしてくれるのでそれほど心配しなくてもだいたいは不具合が起きにくいです。

コクーンはバージョンアップでPHP8.xに対応OK

それでも人気テーマのコクーン(Cocoon)でも先月不具合が起きています。PHP8.1だと表示の不具合が起きてしまい、正常な表示ができなくなってしまいました。他のプラグインなども調整しましたが、PHP7.4に戻したところ解決したという事例がありました。

WordPressのテーマを変更したら表示の不具合が頻出、原因はそのテーマがPHP8.xに未対応だったからでした
https://www.dm2.co.jp/blog/17860

コクーンはエックスサーバーやロリポップの推奨テーマなので利用者が数百万人以上いると思われます。そのようなメジャーなテーマでもこのような不具合が起きているのが実際です。

たまたま、本日確認したところ、コクーンの最新バージョン2.5.1にアップデートしたところ、PHP8.xでも問題なく表示できることがわかりました。

コクーンの最新バージョンは2.5.1
https://wp-cocoon.com/2-5-1/

オリジナルデザインテーマは制作者と相談

企業のオリジナルデザインテーマの場合は、デザイン制作をしてくれた制作者にその都度対応を依頼するしかありません。

しかし、制作者のWordPress対応の能力にはばらつきがあり、すべての制作者がPHP最新バージョンに対応できるとは限りません。

そうなると、PHPやWordPressのバージョンを上げるとデザイン表示が大きく崩れてしまうため、古いバージョンのままで運用するしかない状況が続くことがあります。この状況が数年も続いていますとセキュリティ的に問題が起きてしまうので、不正侵入やハッキングなどの被害にあってしまう確率が高まっていきます。

現実的にPHPバージョン問題はどうするか

PHP7.4は非常によく使われているバージョンなので、現在でもPHP7.4を推奨という表現をしているレンタルサーバーや制作会社が多いのが現実です。

しかしいつまでもこのままでいいわけがありません。

バックアップ環境を用意してバージョンアップをテストする

まずは、PHPのバージョンアップを実施してみましょう。

主要なレンタルサーバーは、PHPのバージョンを自由に切り替えできます。現在のPHPが7.4よりも古かったら、8.0以上に切り替えしてみましょう。もしも表示に不具合がでたらすぐに戻すことができます。

当サイト(dm2.co.jp)は、現在エックスサーバーで運用しています。PHPのバージョンは8.1.12になっています。

上記のようにPHPバージョンは切り替えが容易ですので試してみることは有効です。

PHPをバージョンアップしても表示や動作に問題ないかどうかチェックします。もしも問題が起きたら、その問題箇所について解決策を探ります。

対症療法的になりますが、結果的に一番手っ取り早いやり方です。

ただし、このような大きな環境変化を実施するさいは、もしものためにサイトのバックアップを取っておきましょう。

バックアップについては、エックスサーバーなら自動で毎日とってきますのでもしものことがあっても前日の状況に戻すことができます。他のレンタルサーバーでも同様の機能があれば設定しておきましょう。たしかロリポップは有料サービスで、さくらインターネットはちょっとわかりにくいけどいちおうバックアップ機能はあります。

その他の方法としてはWordPressまるごとバックアップするのがよいです。

All-in-One WP Migration


が便利です。

代替サイトを用意して修正する

もっと完全に対応しようという場合はステージングをする方法があります。ステージングとは、現状サイトの代替サイトを別サーバーなどで用意して、その代替サイトでテストや修正を実施したうえで動作に問題がなくなった状態まできたら本番サイトに戻すという方法です。

ステージングを自分で実施するのはハードルが高いかもしれないので、信頼できる制作会社などに相談したほうがいいかもしれません。

セキュリティ問題は放置してはいけません

なんだか対応が難しい状況ですが、セキュリティ問題なので放置はいけません。

WordPressやPHPなどのバージョンが古いままで運用すると、不正侵入されるリスクが高まります。自家用車でいうと「車検切れ」の状態ですので、なにか問題が起きたらおおごとになるかもしれません。できるだけ早く手を打ってください。

自主的な解決が難しい場合は、信頼できる専門家や制作会社などに相談することをおすすめします。

ChatGPTにPHP8.xについてたずねてみました

ChatGPTに、PHP8.xにバージョンアップするとワードプレスで不具合が起きた場合の原因と対策は?ということを質問してみました。

回答
PHP 8.x のアップグレードにより、WordPress のプラグインやテーマなどが正常に動作しなくなることがあります。これは、旧バージョンの PHP で使用されていたデプレッサーが、PHP 8.x では非推奨になっているためです。

対策としては、まず WordPress のテーマやプラグインをアップグレードすることをお勧めします。もしもアップグレードが不可能な場合や、アップグレード後も不具合が発生する場合は、代替のテーマやプラグインを導入することも検討することができます。また、PHP のデバッグモードを有効にすることで、不具合が発生する原因を特定することもできます。

なるほどです。

続けて、「不具合を起こすプラグインがレンタルサーバーによってはちがうことがあります。なぜですか?」とたずねました。

回答
レンタルサーバーによっては、異なるバージョンの PHP や、異なる設定などが使用されているため、WordPress のプラグインやテーマが正常に動作する環境が異なってくることがあります。これにより、同じプラグインを利用する場合でも、レンタルサーバーによっては不具合が発生するか、発生しないかが異なってくることがあります。

また、レンタルサーバーによっては、古いバージョンの PHP や WordPress が使用されていることもあり、最新バージョンにアップグレードすることができない場合もあります。これが原因で、不具合が起きることがあります。

そのため、レンタルサーバーを利用する場合は、サーバーのスペックや、使用可能なバージョンなどについて確認し、WordPress のアップグレードやプラグインの使用に合わせた環境を整えることが大切です。

最終的な微調整はケースバイケースになるということですね。