サーバーのphpバージョンアップの影響によるWordPressやメールフォームのエラーについてお伝えしていきます。
WordPressやphpを利用したメールフォームを使用している場合、サーバーのphpバージョンアップの影響で、それらが動作を停止したり不具合が起こったりします。
では、「phpバージョンを上げなければいいではないか」ということになりますが、それはそのとおりです。
しかしながら、サーバー会社によってはセキュリティやサーバー負荷軽減のために、サイト運営者が知らぬ間にバージョンを上げるという場合があります。
このため、先日まで何の問題もなかったホームページが、500エラー(内部サーバーエラー)等で急に動作を停止してしまうということが稀に起こります。古い関数や構文が非推奨となり、新しいバージョンでは正しく動作しない場合があります(直近のバージョンまでは、「警告」で済んでいたものの、動作を停止するという形で取り扱いが変わる場合もあります)。
そうした場合の対応、対策について触れていこうと思います。
「先日まで正常に使えていたメールフォームが突然使えなくなった」
「ホームページを何も操作していないのに、突然問い合わせフォームのページが動かなくなった」
「久しぶりにWordPressの管理画面に入ろうと思ったら、エラーで入れなくなっていた。原因がわからない」
という場合、サーバーのphpバージョンアップの影響である場合があります。
それでは、phpバージョンそのものについて概観した後、WordPressとphpバージョンの関係、phpメールフォームとphpバージョンの関係、そして「phpバージョンアップの影響」によって生じるエラー(不具合)とその解消方法について見ていきましょう。
phpのバージョンの種類
それでは、phpのバージョンの種類を簡単に見ていきましょう。
- php5.x(2004年~2018年(2019年))
- php7.x(2015年~2022年)
- php8.x(2020年~)
(リリース年~セキュリティサポート終了年)
php5.x
5.6~
リリース2014/08/28
最終バージョン 5.6.40 リリース2019/01/10
セキュリティサポートは、2018/12/31で終了。
(5.5 は2016/7/10にセキュリティサポートが終了)
php7.x
7.4~
リリース2019/11/28
最終バージョン 7.4.33リリース 2022/11/03
セキュリティサポートは、2022/11/28で終了。
php8.x
8.3~
2022/11/23
最新バージョン 8.3.1 リリース2023/12/21
セキュリティサポートが残っているもの
8.2
リリース2022/12/08
最新バージョン 8.2.14 リリース 2023/12/21
セキュリティサポート 2025/12/08
8.1
2021/11/25
最新バージョン 8.1.27 2023/12/21
セキュリティサポート2024/11/25
(8.0は、2023/11/26 で終了)
WordPressとphpバージョン
WordPressは、本体のバージョンごとに対応するphpバージョンがあります(MySQLのバージョンも関係がありますがここでは割愛します)。
参考として、WordPress4.4以降のphp対応表(動作環境、推奨環境)を掲載いたします。※投稿時点での情報です。WordPressのマイナーバージョンアップやphpバージョンアップにより変動することがあります。
WordPress 4.9.5~4.9.xphp 5.2.4~7.2php 7.2以上
WordPressバージョン | phpバージョン(動作環境) | phpバージョン(推奨環境) |
---|---|---|
WordPress 6.4 | php 7.0~8.3 | php 7.4以上 |
WordPress 6.3 | php 7.0~8.2 | php 7.4以上 |
WordPress 6.0~6.2 | php 5.6.2~8.2 | php 7.4以上 |
WordPress 5.9 | php 5.6.2~8.1 | php 7.4以上 |
WordPress 5.7~5.8 | php 5.6.2~8.0 | php 7.4以上 |
WordPress 5.6 | php 5.6.2~8.0 | php 7.4以上 |
WordPress 5.5 | php 5.6.2~7.4 | php 7.4以上 |
WordPress 5.3~5.4 | php 5.6.2~7.3 | php 7.3以上 |
WordPress 5.2 | php 5.6.2~7.3 | php 7.3以上 |
WordPress 5.0~5.1 | php 5.2.4~7.3 | php 7.3以上 |
WordPress 4.9.0~4.9.4 | php 5.2.4~7.2 | php 7以上 |
WordPress 4.7~4.8 | php 5.2.4~7.1 | php 7以上 |
WordPress 4.4~4.6 | php 5.2.4~7.0 | php 5.6以上 |
現行のWordPressのバージョンとphpバージョン
現在利用している現行のWordPressのバージョンとphpバージョンが一致していない場合はWordPressにエラーが生じます。
またWordPress本体だけでなく、利用しているテーマやプラグインが利用中のphpバージョンに対応しておらず不具合が発生することもあります。端的には互換性の問題です。
プラグインが対応しているphpバージョン
WordPress本体のバージョンと動作環境phpバージョンが一致していても、利用しているプラグインがphpバージョンと一致せずに不具合が起こるということはよくあります。
最新バージョンに更新すると不具合が解消することもありますが、最終更新日が古い場合、新しいphpバージョンに対応しておらず、動作を停止することがあります。
バージョン不一致によるエラーへの対応
WordPress本体とphpバージョンが合っていない場合は、ひとまずWordPressをバージョンアップするか、phpバージョンを変更するか、といった変更で対応することができます。
ただ、それに伴いプラグインに不具合が起こっている場合は、原則利用しているプラグインを停止し利用を諦めるか、代替プラグイン等を利用するかしかありません。
phpメールフォームとphpバージョン
さて、次にphpメールフォームとphpバージョンについて触れていきたいと思います。
弊社へのホームページ修正のお問い合わせで意外と多いのが、phpメールフォームの修正です。
メールフォームは、仕様、作り方が千差万別なので修正しようとすると、大掛かりな調査、作業が必要となるため、修正対応できずに新規メールフォームを設置させていただくという代替案を出させていただくことがよくあります。
ホームページ修正事例 メールフォームの内容修正が困難なため新規設置
「それまで普通に使用できていたメールフォーム(お問い合わせフォーム等)が急に使えなくなった」という場合、それがphpで作られたメールフォームである場合は、たいていサーバー会社によるphpバージョンの変更が原因となっています(セキュリティや処理速度向上によるサーバー負荷軽減のためにphpバージョンが変更されることがあります)。
使用できない関数の取り扱い
最近よくある事例としては、「メールフォームに組み込まれた関数が、バージョンアップされたphpにおいては使用できない」という場合の取り扱いにおいて、「500エラーを返す」というケースです。
php7以降は非推奨で、php7.4までは「裏側で警告が出る程度」だった関数が、php8以降は、「完全に使用できない」というふうに取り扱いが変わっていたりします。
そうした関数の取り扱いに変更点がある中、利用サーバーにおいて知らぬ間にphpバージョン変更が実施され(セキュリティ等のため致し方ない面はあります)、メールフォームが動作しなくなるということが起こります。
メールフォームエラーへの対策
バージョンアップされたphpバージョンに、現行のメールフォームが対応していない場合、もしそのメールフォームがオープンソースベースであり、新バージョンのフォームプログラムが用意されているのであればそちらに切り替えることで対策することができます。
phpバージョンを元に戻すということが可能なのであれば、そちらでも対応は可能です(例:php 8.1になっていたため、php7.4に戻す)。しかし、いずれphpのセキュリティサポート終了に合わせて、旧バージョンのphpは利用不可になっていきます。
また、新しいphpバージョンで使用が禁止され、使用すると内部サーバーエラー(500エラー)を起こしてしまう関数を抽出し、その部分の機能を諦めた上で該当部分を削除するという方法でもひとまず対応することができる場合があります。
新バージョンのphpの影響によるエラーの修正
phpを利用していたものの、それほど繰り返し表示がなく、重要な箇所でもないような場所は、htmlで表現し直すというのも良いかもしれません(WordPressのエラー修正やカスタマイズがうまくいかないときこそHTMLの基本で解決する)。
phpバージョンは新しいほど処理速度も早くセキュリティも向上しています。
なるべく新しいものを使うに越したことはありませんが、そのバージョンアップに合わせて、「いきなりプログラムが停止する」ということがあります。
宿命と言えば宿命ですが、WordPressサイトが停止する、メールフォームが停止する等々は、企業のホームページ利用においては致命的です。
定期的なチェック、保守管理、バックアップを含めた各種バージョンアップが必要になると考えられます。
「突然phpメールフォームが動作を停止した」という場合や「何もしていないのにWordPressが正常動作をしなくなった」という場合、phpバージョンの影響を疑ってみるというのも一つです。
ただ、phpバージョンの問題に関しては、ただバージョンを操作すれば良いというだけでは終わらないことがよくあります。
ご自身での対応が難しい場合は、お問い合わせフォームよりお気軽にご相談ください。
(初回投稿日 2024年2月16日)