[WordPress] サーバーのファイル数が尋常で無く増えていた場合にまず疑うこと

ある日、ロリポップからメールが来ました。「【ロリポップ!】WEBサーバーに設置できるファイル数に上限を設けます」とのこと。

この度、WEBサーバーに設置できるファイル数に上限を設けることとなりました。
スタンダードプランをご利用のアカウントに対しては、2018年9月11日に上限を設定させていただきます。
上限設定日:2018年9月11日
上限値:500,000 ファイル

ほー、世の中にはいっぱいたくさんファイルを上げている人もいるんだなぁ。50万ファイルて。はっはっは。

ん?

どうやら俺は該当者らしい。そんな馬鹿な。ということでロリポップ管理画面でファイル数を見てみたところ。


んん?


170万ファイルありました。
100万ファイル以上削除しなければいけないようです。

というかこんなファイル数アップしたことに、確実に身に覚えがない。どう考えても自動でアップされる何かのはずです。おそらく

  • ブログ記事用にアップした画像が勝手に解像度違いでアホみたいにアップされているか
  • たぶんキャッシュ系プラグインが溜め込んでいる

だろうとをアテをつけましたが、画像ファイルは集計してもたかだか数千だったので、これはもうキャッシュに違いないとサーバを見てみました。

危険なディレクトリ

WP File Cacheというプラグインが悪さをしている模様。俺の場合はこんな感じでした。

/wp-content/plugins/wp-file-cache/cache/terms/
ここに95万ファイル。

/wp-content/plugins/wp-file-cache/cache/posts/
ここに36万ファイル。

/wp-content/plugins/wp-file-cache/cache/comment/
ここに34万ファイル。

/wp-content/plugins/wp-file-cache/cache/post_meta/
あとここにも2,100ファイルあったが、もはやカスみたいに見えてくるから不思議だ。

ここらへんを何とかすれば問題解決っぽい。

WP File Cacheのキャッシュファイルを削除する

WordPress管理画面のメニュー「設定」 > 「WP File Cache」からそれらしきボタンを発見。


Purgeは「粛清する」という意味らしいので、これがキャッシュを消すボタンに違いないということで、押してみる。「Are you sure?」と聞かれるのでちょっとビビるが、押す。
が、30万ファイル削除できたところでタイムアウトエラー(504 Gateway Time-out)になるので、完全にクリアするまでこれを繰り返す。

3~4回繰り返すと…


23,000くらいまで下がりました。よかった。これで一応、ファイル数上限の問題はクリアです。

WP File Cacheを続けるのか

さて、一時しのぎはできたのですが、このプラグインを入れている以上定期的に発生する問題なので、「そもそもこのプラグインを使い続けるのか」という問題は残ります。これはちょっと時間をおいて考えてみようと思います。1週間でどれくらいのファイルが溜まるのかなど見てみたい。

もし削除することになったら:
WP File Cacheのせいで似たような問題に遭遇した人は多いようで、そういう方の報告ブログを参照しながら丁寧に進めようと思います。わりとキャッシュ系プラグインのせいで不具合が起きるケースが多いのは前に聞いてたので、怖い。
WP Super Cacheの正しい削除方法 – FOXWP

プラグインを入れ替える場合:
キャッシュ系プラグインは多くが出回っているので、自動でゴミファイルを削除してくれるプラグインに載せ替えるのも有効です。以下の記事が大変参考になりそうです。
WordPressキャッシュ系プラグインの比較とサイトに適した選び方 | ゆっくりと…

そもそもプラグインやめたら遅くなるのか:
理論上はそうのはずですが、私自身効果について懐疑的ですので、ABテストなどやってみようと思います。

終わりに

とまぁ、こういうことでしたが、この件で改めてサーバーのディレクトリを見直す機会になり、不要なものを削除したりと整理するきっかけになったので良かったです。