先日WordPress記事更新時に画面が真っ白に、その原因と対処で書きましたWordPressがメモリ不足になった件ですが、念の為に対処後のログを確認していたところ、まだメモリ不足のエラーが出ていることを発見しました。
問題は直っているのにまだメモリ不足エラーが出る
出ているエラーは前回と同じ
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate xxxxxx bytes)
ですが、発生しているファイルの場所が前回とは異なっています。
記事が更新できないという前回の問題は確かに直っているのにまだメモリ不足のエラーが発生していることが不可解ですし、前回の設定で使えるメモリサイズの上限は1000Mに拡張したはずにもかかわらず、「Allowed memory size」で示される値が256Mのままなのも謎です。
WordPressのメモリ上限設定は2種類ある
混乱しながら再度ネットで調べてみると、WordPressが使うメモリ上限の設定には次の2種類があることがわかりました。
WP_MEMORY_LIMIT
こちらは一般的にWordPressが使うメモリの上限を指定するものです。
wp-config.phpでの指定例:
define('WP_MEMORY_LIMIT', '64M');
WP_MAX_MEMORY_LIMIT
一方こちらは、管理画面で使うメモリの上限を指定するものです。
wp-config.phpでの指定例:
define('WP_MAX_MEMORY_LIMIT', '256M');
今回の問題の原因と対処
先日私が行いました対処では、記事中にはWP_MEMORY_LIMITと書いておきながら、実際のwp-config.php内の指定にはWP_MAX_MEMORY_LIMITの方を使用していました(参照したWebページからコピペするときに間違えてしまったようです)。
このため管理画面のメモリ上限のみが拡大され、管理画面での記事更新時の問題は解消されたものの、一般画面で発生していたメモリー不足エラーが後に残ってしまったものと思われます。
この点を解決するため、wp-config.phpに追加したメモリ上限の指定を以下のように2行に修正しました。
define('WP_MEMORY_LIMIT', '512M'); define('WP_MAX_MEMORY_LIMIT', '1024M');
各々を違う値に設定したのは管理画面の方がメモリを食いそうなことと、違う値にしておいたほうが問題が発生した時などにどちらの指定値が関係しているのかを切り分けやすいだろうと考えたためです。
この設定をした後しばらくログを観察していましたが、今のところメモリー不足のエラーは再現していません。
[…] WordPressのメモリ不足対策が不完全だった http://streamline-jp.net/nextlife/2015/09/16/10233/ […]