ワードプレス最新版6.xとPHP最新版8.xの相性が悪いのは、PHP8がサーバーのメモリを食うからかもしれません

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

ワードプレス最新版6.xとPHP最新版8.xワードプレスで運営しているホームページはサーバー管理も重要です。ワードプレスを稼働させるためのサーバー側の言語はPHPです。このPHPの最新バージョンは8.xですが、ワードプレスの推奨バージョンは7.4となっています。
しかし、PHP7.4のセキュリティサポートは終了しているので新たな脅威が起きても修正プログラムの配布はありません。今後更新するのはPHP8.xのほうだけです。
このPHP8ですが、ちょっとやっかいなエラーがついて回っています。

PHPのバージョン問題

PHPの最新バージョンは8.2

現在のPHP最新バージョンは8.xです。利用しているレンタルサーバーによって微妙にバージョンが違い、コアサーバーV2なら8.2で、エックスサーバーなら8.1でした。

推奨バージョンはまだ7.4

最新バージョンは8.xですが、推奨バージョンはまだ7.4です。

以下はエックスサーバーのPHPバージョン切り替え画面です。

PHP8.xに切り替える際の注意点

当社で管理しているサーバーはいくつかありますが、現在はほとんどPHPのバージョンを8.xにあげています。

PHP7.4のサポート期限が終了したので既存のWordPressのサーバー設定を見直しPHP8.xにしました
PHP 7.4は11月28日にサポートが終了しました。セキュリティサポートも終了しましたので11月28日以降にPHPの脆弱性が発見されてもセキュリティパッチが提供されません。そのためPHP 7.4を利用しているWordPressは、できるだけ早くPHPのバージョンを8.x以上に対応させる必要があります。 そもそもPHPとは、Webページを動的生成するためのスクリプト言語で、サーバーでWordPre...

しかし、まだPHP7.4のままで運用しているホームページがあります。その理由は、PHP7.4なら稼働するのにPHP8.xだとエラーになりまったく表示できないからです。

このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。

WordPress のトラブルシューティングについてはこちらをご覧ください。

この重大なエラーの原因のひとつは「メモリ不足」でした。

PHP8.xはメモリを食うようです

サーバーのサポートのヘルプデスクに問い合わせたところ、メモリの上限を引き上げるように指摘されました。

エラーログを確認すると
php_value memory_limit 50M
という表示がありました。

この意味は、PHPを使うために割り振られたメモリが50MBということですが、これでは足りないということのようです。

そこで「.htaccess」ファイルの内容を変更しました。

▼「.htaccess」の末尾にある以下の内容を変更しました

php_value memory_limit 128M
php_value post_max_size 1500M
php_value upload_max_filesize 1500M
# END

つまり

php_value memory_limit 50M

php_value memory_limit 128M

というように変更したわけです。この処理でPHPが使えるメモリは50MBから128MBまで増えました。

これでエラーはなくなり、PHP8.xでワードプレスが問題なく表示できるようになりました。

つまり「重大なエラー」の原因はメモリ不足だったわけです。

PHP7.4だとメモリ50MBで動いていたのに、PHP8.xだとメモリ不足になるということは、PHP8.xは「かなりのメモリ食い」なのかもしれません。

PHPのメモリはどのくらいに設定するのが最適なのか

PHPのメモリ推奨値

PHPのメモリ制限は、WordPressなどのPHPを用いた場合に使用可能なメモリやファイルアップロード可能な容量を決めるものです。
最近の一般的なPHPのメモリの推奨値は、256MBか512MBだということでした。サーバー仕様や、サイトの規模や機能によって異なりますが、メモリ容量はずいぶんと拡張されているようですね。

PHPメモリ変更の方法

「.htaccess」に記述する

今回実施した方法がこれですね。「.htaccess」に記述します。

メモリ上限を256Mにする場合

php_value memory_limit 256M

メモリ上限を524Mにする場合

php_value memory_limit 524M

wp-config.phpに追記する

wp-config.phpファイルに次の行を追加することでもPHPのメモリ上限を変更することができます。

メモリ上限を256Mにする場合

define (‘WP_MEMORY_LIMIT’, ‘256M’);

メモリ上限を524Mにする場合

define (‘WP_MEMORY_LIMIT’, ‘512M’);

他の方法

上記の方法以外ですと、php.iniファイルの記述を操作する方法もあります。また、サーバーの管理画面内にPHPのメモリ設定を記入する欄が用意されているという方法でメモリ上限を変更するサーバーの例もあります。

利用する環境に応じて設定を変えてみてください。