一人十郷 - takuminasuno.com 一人十郷
takuminasuno.com
ビジネス
2024/07/28

WordPressでたった1つの投稿だけなぜか表示されない不具合を解消した件【PHPメモリエラー】

こんにちは。那須野です。

このブログはWordPressで運用しているのですが、たまたま過去の記事を読み漁っていた時にたった1つの記事だけなぜか表示されないという事実に気づきまして、サーバーを調査して直しましたというお話です。同じトラブルに遭遇する方はいるかもなと思い、備忘録的に記録します。

 

なぜか表示されないWordPressの記事

まず、表示されなかった記事は、Pythonのデータ処理についてまとめていたこの記事です。

なんと、タイトルの下が真っ白になっています…。なんだこれ…。

phpの内部的な話で言うと、タイトルなどの要素を構築したあとに、the_content関数を実行するときになんらかのエラーで失敗して、以下の要素が構築できずに白紙になっているようです。

これ以外に20個ほどの記事を目視確認しましたが、不具合が起きているのはこれだけのようです。ちなみに、もちろんこれを書いた当時はちゃんと表示されていましたし、最近になってこの記事を書き換えたわけでもありません。なぜこうなった…。

この記事の特徴は、このブログには珍しくプログラミングコードが満載であること。この時点で「もしかして特定のプログラミングコードが何らかのプラグインと競合して致命的なエラーを出しているのでは…?」という仮説を持ちましたが、すべてエスケープされているはずのHTMLコンテンツがエラーを吐き出すとは到底思えず、原因が分からない状態でした。

 

WordPressのサーバーのエラーログを調査する

PHP側でエラーが起きていることは確実だったので、WordPressのサーバーのエラーログを確認してみることにしました。CentOSにWordPressを入れている方あるあるですが、


あたりのディレクトリに、日ごとにファイルが分かれてエラーログを出力するよう設定していることが多いです。実際、本日日付のファイルがあったので確認したところ、

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in {DIRECTORY_PATH}/wp-content/plugins/easy-table-of-contents/includes/inc.cord-functions.php on line 255

というエラーが出ていました。まさかのPHPのメモリエラー???

ちなみにeasy-table-of-contentsというのは、WordPressの記事に目次を挿入したくて最近になって追加したプラグインです。自由度が高くて簡単に使えるので採用していました。このエラーを見るに、いい感じに目次を生成するうえでメモリをたくさん使うんでしょうか…。

ということは、この記事がひっかかった原因は、おそらく文章量の多さと見出しタグの多さによる目次計算量の多さになります。プログラミングコードが大量に掲載されていたことで、他に記事にない文章量になっていたことが背景にありそうです。

 

PHPメモリの上限を増やしてエラーを解消する

原因は分かったので、解決に移ります。

これもCentOSにWordPressを入れている方あるあるですが、だいたいの方はetcフォルダにphp設定ファイルがありますので、


にて設定ファイルを開き、memory_limitのパラメータを調整してみます。もともと128MBだったのを256MBに変更し、その後


にてApacheサーバーを再起動したところ、すぐに直りました!

長文そうな記事を他にもいくつか見てみましたが、問題なさそうなのでひと安心です。

 

WordPressプラグインがPHPメモリを食いつぶす問題

今回の問題は端的に言うと「WordPressプラグインがPHPメモリを食いつぶす問題」と言えるのではないでしょうか。

WordPressでブログを運営していると後からプラグインを追加するシーンは多いと思いますが、そうやって追加したときに計算量が多くなってPHPメモリを食いつぶし、過去の長文記事が見えなくなってしまうというのが今回の事象だったように思います。

WordPressのテーマ自体はちゃんと実装していてエラーはそうそう起きないと思っていて、それはそれでよかったのですが、インフラ側の問題もちゃんとケアしてあげないといけなかったですね。

以上、この備忘録が誰かの役に立ちますように。

同じカテゴリーの投稿もどうぞ!
Dataformを使ってBigQueryにあるGA4データを加工してLooker Studioで可視化してみた話
ビジネス
2024/10/20
Dataformを使ってBigQueryにあるGA4データを加工してLooker Studioで可視化してみた話
ConoHa VPSのWordPressサイトを複製してステージング環境を作った手順をまとめてみた
ビジネス
2024/10/05
ConoHa VPSのWordPressサイトを複製してステージング環境を作った手順をまとめてみた
ConoHa VPSにMetabaseをインストールして独自ドメインを宛がってみた話
ビジネス
2024/10/02
ConoHa VPSにMetabaseをインストールして独自ドメインを宛がってみた話
WPMLを使っているこのWordPressブログで、CentOSをやめてRocky Linuxを採用してサーバー諸々をアップデートした話
ビジネス
2024/08/17
WPMLを使っているこのWordPressブログで、CentOSをやめてRocky Linuxを採用してサーバー諸々をアップデートした話
Looker Studioで新しいグラフ種別を作る【Community Visualizations】
ビジネス
2024/07/14
Looker Studioで新しいグラフ種別を作る【Community Visualizations】
ブログ著者について
那須野 拓実(なすの たくみ)。たなぐら応援大使(福島県棚倉町)。トリプレッソを勝手に応援していた人。元語学屋。時々写真垢とか手芸垢。山とか滝とか紅葉とかが好き。本業はナレッジマネジメントとかデータ分析とかの何でも屋。コロナワクチン接種済み。