エラーメッセージの意味
このエラーメッセージは、PHPのスクリプトが許可されたメモリの上限に達したことを示しています。具体的には、「Fatal error: Allowed memory size of 134217728 bytes exhausted」というエラーメッセージが表示されていますが、このメッセージの中に含まれる数字(134217728
)はメモリの上限をバイト単位で示しています。
エラーの発生原因
PHPスクリプトが使用するメモリ量が、サーバーの設定で許可されたメモリサイズを超えたためです。このエラーは、メモリを多く消費する処理(大量のデータ処理、画像処理など)が実行される際に特に起こりやすいです。
実際に発生した時の状況
実務案件で記事の「編集」ボタンをクリックしたときに、「このサイトで重大なエラーが発生しました」とメッセージが表示された。
いただいた権限が「編集者」だったため「管理者」に変更してもらうと記事の編集画面には進めるようになった。
しかし「更新」をクリックしても「更新に失敗しました。」となり更新されない。
wp-config.phpでdefine( 'WP_DEBUG', true );
に変更し確認したところAllowed memoly size ~
のエラーだと判明しました。
実際にどう対処したのか
サーバーはロリポップでした。
「PHP設定」でPHPのバージョンの横の「CGI版」と「モジュール版」があるが「CGI版」であることを確認する。
バージョンの横の「設定」に進んでいただき一番下の項目に「php_value, php_flagを利用可能にする」という項目があるので「On」にする。
.htaccessに下記を追加するとエラーが解消される。
php_value memory_limit 512M
php_value post_max_size 512M
php_value upload_max_filesize 512M
他の対処方法
プラグインを不必要に入れすぎない
プラグインがメモリを多く消費している可能性があります。不要なプラグインを無効にしたり、代替のプラグインを検討することで問題が解決することもあります。
契約プランやサーバーの見直し
対処法として安いプランから高いプランへアップグレードしたり別のサーバーに移転することが考えられます。
まとめ
Allowed memory size of 134217728 bytes exhaustedエラーはPHPのスクリプトが許可されたメモリの上限に達したという意味のエラーでした。Fatalエラーなので、PHPのプログラムを停止します。今回はロリポップサーバーで対処した実務経験での話になりましたが、プラグインを不必要にインストールしない。サイトが成長してきたらサーバーのプランや移転を考えるといったことを考える必要があります。