HOME > WordPress > [WordPress] Fatal error: Allowed memory size of 268435456 bytes exhausted … WP File Cacheが暴走!? キャッシュファイルを大量に作成

[WordPress] Fatal error: Allowed memory size of 268435456 bytes exhausted … WP File Cacheが暴走!? キャッシュファイルを大量に作成

先日、久しぶりに恐怖の真っ白画面+エラーメッセージが出てしまいました。

プラグインをまとめてアップデートしたら発生。

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 65484 bytes) in…..

設定されているメモリサイズを使い果たしていますよ、ってことらしい。

メモリーを使い切るような使い方はしてないはずなんですけどねぇ、、

メモリーリミット変更

メモリーのリミットを変更すると復旧するらしいのでやってみる。

php.iniか.htaccess、wp-config.phpの3箇所で設定可能。

php.iniの設定はサーバーのコントロールパネルから出来るんだが、今回は「.htaccess」か「wp-config.php」で設定してみる。

それぞれ一文追加するだけだ。

268435456 bytes 使い果たしてるっていうので、512MBで設定してみる(上限がいくつなのかはしらない、、、)

.htaccessの場合

php_value memory_limit 512M

wp-config.php

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

phpinfoで設定が変更されているかチェック

ちゃんと設定変更されているか確認。

テキストエディタで、

と入力し、ファイル名「phpinfo.php」で保存。そして「wp-config.php」と同じ階層にアップロードしてください。
(例)http://example.com/phpinfo.php

そうすると下記画像のようなページが表示されます。
で、「memory_limit」が該当箇所です。(画像は256Mで試したもの)

数字が変わっていれば設定できています。

が、しかし、二通りの設定をやってはみたものの
…(tried to allocate 65484 bytes)
ここの「65484」が他の数字に変わるだけだった。

キャッシュ系プラグインが原因か?

サーバーに関してあまり詳しくないので、よくわからんのですが、
おそらくプラグインがメモリーを食い尽くしてるのかなぁと推測。

で、怪しいキャッシュ系プラグインをピックアップ。

WP Super Cache
WP File Cache

上記2つが稼働中でした。

アップデート時にエラーが起こる原因は大概キャッシュ系のプラグイン。

管理画面には入れないので、FTPからディレクトリを見てみる。

WP Super Cacheのキャッシュファイルは
wp-content/cache/supercache
の中に作られます。

異常なし。

続いて「WP File Cache」をチェック。
キャッシュファイルは
wp-content/plugins/wp-file-cache/cache
の中。

さらにカテゴリー分けされているのだが、その中の1つ、「moディレクトリ」の中に大量のファイルが作られている、、、

更新日時を見てみると、長い期間をかけて溜まったファイルではなく、最近になって作成されたファイルがほとんどだ。

1日に2000近くファイルが作成されている日もある。
たぶんこれだ。。

このフォルダだけで16GBもありました。おそろしや。

WP File Cacheを削除

cronで削除しようとしたんですが、よくわからず断念、、、

ファイルが多すぎてディレクトリまるごと削除できなかったので、地道に削除。

まず、「wp-content/plugin/wp-file-cache/cache/mo」の中にある103877ファイルを削除。

これが終わったらプラグインのディレクトリ「wp-file-cache」まるごと削除可能です。

WP Super Cacheを削除

一旦キャッシュ系全部削除することにしました。

WP Super Cache は使う予定ですが、とりあえず一回削除します。

「wp-content」の中にある3つ。
・advanced-cache.php
・wp-cache-config.php
・cacheディレクトリ

を削除。

wp-config.phpファイルを修正

WP Super Cacheを設定すると、自動でwp-configファイルに書き込まれるので、
該当箇所を削除します。

冒頭に追加されているので2、3行目を削除。

.htaccessファイルを修正

wp-config.phpと同様に.htaccessにも自動で書き込まれるので削除します。

# BEGIN WPSuperCache 〜 # END WPSuperCacheまでを削除。

これでやっと管理画面に入れるようになりました!
サイトも表示されて一件落着。
かとおもいきや、トップページ以外404エラー!

パーマリンク設定変更

リンク切れ。これは他の事案ですが、同じ状態にになったことがあります。

パーマリンク設定を更新してやればいいのです。

wpfc-error_ph05

左メニュー「設定」→パーマリンク設定で

wpfc-error_ph06

実際に変更する必要はなし(ボタンを押すだけ)

これにてすべての修理が完了しました。

まとめ

キャッシュ系プラグインには何度も何度も痛い目に合わされています。。
新たなプラグインは入れずにしばらくはこのままにしておこうと思います。

同じ症状で苦しんでいる方の助けになれば幸いです。

※この機会にずっと更新が止まっているプラグインを外しました。
「DB Cache Reloaded Fix」とか「Ultimate Google Analytics」など。
WP File Cache」と「MO Cache」も2年以上更新がなかったんですね。(ノ′Дヾ)