原因は、php.ini上のメモリ設定の不足・・・ここはデフォルトの設定でWordPress導入時から変わっていない(省略値)
Thank you for reading this post, don't forget to subscribe!症状は、記事の更新で、ディスクリプション部分が更新できません。タイトルや他のカスタムHTMLブロックに入れたテーブルなどは更新できています。
この記事では、500Internal Server Errorに至る前兆、エラー原因の究明と対策方法についてお伝えしたいと思います。
更新エラー
description
タイトルや記事部分の編集を終えたので、メタディスクリプション部分の内容を編集して更新します。
- 編集前のディスクリプションは322文字でプラグインの数は146本でした。
- 今回、プラグインの数は153本に増え、ディスクリプション内の文書も編集して文字数は222文字になりました。
- ここでディスクリプションの内容が元に戻って(ロールバックして)います。 ボタンを押したのですが、
- ページの最上部までスクロールしてみると、「更新に失敗しました。」となっています。
同時編集したタイトル部分の更新(153本)は更新され反映されています。 - また、編集画面から通常の表示に戻ると、同時編集した記事部分の追加及び編集部分は更新され反映されています。
カスタムcss
さらに、カスタムcss部分を外部Link化して、該当カスタムcssを無効化(ブランク又はコメント化)した後、「更新」ボタンを押しても結果ロールバックされてしまう。
カスタムcss内の定義も、「更新」したのですが、ロールバックしてしまいます。
HTML Check
Nu Html Checker で検査してみたのですが、エラーになるような致命的なHTMLミスはありませんでした。
Error前触れ?
ただ、前触れというか前兆的なものが、24/07/31頃からありました。
(この記事に限定される編集時、7/15、7/19、7/29、8/1だけですが)
この記事は21/02/19執筆以来、使っては行けないプラグインの発見都度記事を更新し続けています。
そして24/04/25でプラグインの数が146本になった時点まではdescriptionも何の問題もなく更新できていました(これは、この記事の更新履歴からわかります。以降5/20、5/25、6/21、7/4と更新しています。)
そしてプラグインの数が147本になった24/07/15から24/08/01(153本)まではdescriptionの更新が出来ていませんでした。
(既に、編集画面Topに「更新に失敗しました。」のエラーメッセージが出ていたのかも知れませんが、本文の方は更新できていたのであまり気にしていませんでした。)
24/07/28時点で記事本文が57,565文字 そしてdescription更新する時点の07/31では60,345文字となっていて
この記事のしばしば待たされる(ブラウザwaitで編集画面に切り替わらないで「待機しますか」のようなメッセージがでていた)状態になることが度々でした。(残念ながらこの時の画面キャプチャは撮っていません)
ボタンを押した時に、Cocoonフォーラム
Cocoonフォーラムの「Cocoonテーマに関する質問 」に相談しました。
フォーラム投稿
Title: 記事の更新で、ディスクリプション部分が更新できません。タイトルや他のカスタムHTMLブロックに入れたテーブルなどは更新できています。
本文:お世話様です。
該当記事: https://xn--ecka7j.biz/security/1242/ で、
「更新」ボタンを押しても一部が更新されないため、
ページの最上部までスクロールしてみると、「更新に失敗しました。」となっています。
(但し、同時編集したタイトルや記事部分の追加及び編集部分は更新され反映されています)
ただ、24/04/25時点までは、ディスクリプション部分の更新が出来ていました(タイトル上の本数と同じ146本)。
その後、何度か同じ記事を更新していますがその時はディスクリプション部分の変更は行わなかったため分かりません。
更に24/07/15にディスクリプション部分の変更(147本)を行った時から24/08/01(153本)までは更新されていません。
(7/15、7/19、7/29、8/1に同記事の編集を行っています。)
•ディスクリプション部分の画像(更新前:322文字➡️編集:222文字「更新」ボタン➡️結果:322文字に戻る)と、「更新に失敗しました。」の画像を添付します。
HTML Checkerで確認すると、CSS部分とHTML部分にいくつかエラーがありますが、これが関係してるとも思えませんが、念の為。
環境情報をつけて
以下のような場合、更新できますでしょうか
• ディスクリプション部分を空にする
• ディスクリプションを、10文字くらいの短い文章にする
上記で更新できた場合は、ディスクリプションに入力した文章に、何か問題があるのかと思われます。
例えば、何か不正な文字などは入っていたり。
(こちらからは入力したものが見えませんので、分からないんですよね)
上記のようなケースが、更新できないとすると、別の原因だと思います
追伸です。
カスタムcss部分も同様に更新できません。
カスタムcss部分を修正して外部css化した後、カスタムcss部分を削除し更新しようとしたのですが、同様にエラーとなり更新できませんでした。
カスタムcss部分を全削除しても、一行だけコメント行にして更新しようとしても、同様にエラーとなり更新できません。
(画像添付)
ありがとうございます。
全削除しても1文字だけにしてもエラーとなり更新できませんでした。
その下の、カスタムcss部分も修正したり、外部css化して全削除しても1行だけコメント行
/* */ に、しようとしてもエラーとなり更新できませんでした。
エラーとなった場合でも、表示上はブランクになっています。
一度更新を閉じて、再度更新しようとするとものと状態に戻った状態で表示されます。
まさかと思いますが、Cocoon設定を変更して保存できますか?
まさに更新ができない状態のようですね。
• デベロッパーツールのConsole部分にエラーは出ていないのか
• エラーログに、何か落ちていないのか
• 親テーマにすると更新できるのか
上記のようなことはご確認いただいていますでしょうか
@mk2_mk2 さん
カスタムcss削除&更新でデベロッパーツールで 500サーバーエラーとなっています。
api-fetch.min.js?ver…er=20240522121129:2
POST https://xn--ecka7j.biz/jn-json/wp/v2/posts/1242?_locale=user 500 (Internal Server Error)
@chu-ya さん
Cocoon設定を変更して保存でデベロッパーツールにエラー表示があります。
Uncaught
TypeError:Cannot read properties of undefined (reading ‘run’)
m=kernel_loader,loader_js_executable:482 Uncaught
TypeError: Cannot read properties of undefined (reading ‘run’)
at m=kernel_loader,load…executable:482:3959
about:blank:1 Denying load of chrome-extension://gaiceihehajjahakcglkhmdbbdclbnlf/content.css. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
about:blank:1 Denying load of chrome-extension://gaiceihehajjahakcglkhmdbbdclbnlf/content.css. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
about:blank:1 Denying load of chrome-extension://gaiceihehajjahakcglkhmdbbdclbnlf/content.css. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
about:blank:1 Denying load of chrome-extension://gaiceihehajjahakcglkhmdbbdclbnlf/content.css. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
content.js:1
GET chrome-extension://invalid/ net::ERR_FAILED
• デベロッパーツールのConsole部分にエラーは出ていないのか
• エラーログに、何か落ちていないのか
• 親テーマにすると更新できるのか
上記の2番目・3番目の確認結果は、どういう状態なのでしょうか。
「500 Internal Server Error」(サーバー内部エラー)ですから、確実に何らかのエラーが発生しています。
その原因を探っていく必要があると思います。
詳細は、エラーログなどを確認しないと、何が起きているかは分からないと思います。
wp-postmetaが更新されないのは、何らかのエラーが原因で、ロールバックされている可能性があると思います。
POST https://xn--ecka7j.biz/jn-json/wp/v2/posts/1242?_locale=user 500 (Internal Server Error)
以下と同じ現象と思われます。
エラーログ取得
- mk2さんのアドバイスに従い、Xserverのエラーログ(xn--ecka7j.biz.error_log)を取得する。
- xn--ecka7j.biz.error_logの該当部分をGEMINIに聞く
(logの解析と対処方法)
フォーラム再開
@mk2_mk2 さん
ありがとうございます。
エラーログの内容をGEMINIに聞いてみました。
もしかして、メモリ不足エラー なのかも、と、いうのはこの記事60,000文字を超えていまして。・・・
サイトヘルスで確認:
PHP メモリ上限 200M
PHPメモリ制限 (管理画面のみ) 256M
メモリ制限を変更してリトライしたいと思います。
GEMINIエラーログの解説
このエラーログは、WordPressサイトで発生した問題を示しています。
メモリ不足エラー
最初のエラーログは、PHPのメモリ不足エラーです。
• 内容: Allowed memory size of 209715200 bytes exhausted (tried to allocate 131072 bytes) in /home/a-itc/xn--ecka7j.biz/public_html/wp-includes/class-wpdb.php on line 2320
• 日本語訳: 使用可能なメモリ容量 (209,715,200 バイト) を超えてしまい、メモリ割り当て (131,072 バイト) に失敗しました。 (ファイル: /home/a-itc/xn--ecka7j.biz/public_html/wp-includes/class-wpdb.php, 行: 2320)
• 原因: 実行中のスクリプト (おそらくWordPress) が、割り当てられたメモリ容量を超えるほど多くのメモリを使用しようとしたためです。
解決方法
メモリ不足エラー
• WordPressのプラグインやテーマを見直す: メモリを大量に消費する可能性のあるプラグインやテーマがないか確認する。不要なものは無効化するか削除する。
• PHPのメモリ制限を増やす (サーバー管理者が必要): サーバーの管理者と相談し、PHPのメモリ制限値を一時的に上げることで、エラーを回避できる場合があります。ただし、根本的な解決ではなく、メモリリークなどの問題の可能性があるので注意が必要です。
補足:
• エラーログには、エラーが発生した関数の情報や、エラーが発生したコードの場所 (行番号) が含まれています。必要に応じて、これらの情報も参考にしてください。
以上の解決方法を試しても問題が解決しない場合は、WordPressのフォーラムや、サーバー管理者に相談することをおすすめします。
私には、エラーログ全部は見えませんので、言えることだけ。
投稿者::
内容: Allowed memory size of 209715200 bytes exhausted (tried to allocate 131072 bytes) in /home/a-itc/xn--ecka7j.biz/public_html/wp-includes/class-wpdb.php on line 2320
WordPressが使用できるメモリの最大量が209,715,200バイト(約200MB)で、そのメモリのすべてを使い果たしたということだと思います。
そして、追加で131,072バイト(約128KB)のメモリを確保しようとしたが、既にメモリの上限に達していたため、確保できなかったのかな・・・と。
まずは、メモリ容量を増やしてみることだと思います。
エックスサーバーであれば、比較的簡単にphp.iniを修正できたと思います。
php.ini設定について
以下の値がどうなっているのか、確認後に増やす感じなのかなと。
• memory_limit
• post_max_size
「memory_limit >= post_max_size」である必要があったと思います。
ちなみに、私もWordPress 6.5.5を使っていますが、特にこの問題は起きていません。
(メモリに関しては十分確保していると思いますし)
@mk2_mk2 さん
お陰様で、php.iniの変更も終わり
記事の更新(ディスクリプションの更新とカスタムcss記述の削除)
も終わり、正常(CSSのエラーもなくなり)にできました。
サーバーパネル > 設定対象ドメイン:イイネ.biz > PHP > php.ini設定 >
• memory_limit : 200M ➡️ 256M
• post_max_size : 30M ➡️ 128M
サイトヘルスでの確認も
PHP メモリ上限 256M
PHP POST サイズ上限 128M
となりました。
エラーログでは、200MBを超えていますし。
どちらも、512Mくらいにしても良い気がしますよ。
現状で上手くいっていますから、そんなに心配ないのかもしれませんけれど。
今後、もっと使用量が増える可能性もあるかもしれませんので、余裕はあった方が良いと思います。
了解です共に512MBまでに変更しました。
Php.ini
memory_limit 512M
post_max_size 512M
サイトヘルスで確認
PHP メモリ上限 512M
PHP POST サイズ上限 512M
500 Internal Server Error
500
500 Internal Server Error