PHPが死にかけているというWordPressで問題が発生しています。メモリを増やしましたが、PHPプロセスが100%のCPU使用率にジャンプしてから終了し、Apacheが500エラーをスローします。
Apacheで何かをログに記録したり、PHP / MySQLでエラーをログに記録したりしましたが、一般的な500エラー以外は何も記録されません。
500号はリストページにあります。例:
/wp-admin/edit.php?post_type=artist
次のような日付の並べ替えを追加すると、WordPressには現在1200以上のアーティストエントリがあります。
/wp-admin/edit.php?post_type=artist&orderby=date
次に、リストはうまくロードされます。私はMySQLクエリログに座って見ましたが、WordPressが10個程度のリストを作成するためにすべての投稿(すべて1200個)のメタデータをロードしているようです。クエリの1つだけで、92000行が返されます。高度なカスタムフィールドと独自のフレームワークを持つテンプレートを使用しているため、各投稿にはかなりの量のメタデータが添付されています。これはPHPで処理するにはデータが多すぎると思います。ここで上限に達しました。1200の投稿は来年には簡単に2倍になるでしょう。
最初のページの読み込みを強制して日付の並べ替えを追加するか、すべてのメタデータの読み込みに関する問題を修正するにはどうすればよいですか?
ACFや他のプラグインを無効にしてみましたか?私はかつて同様の問題を抱えていたと思います、そしてここの犯人はWP自体ではなくACFにあると思います。たとえば、ACFはメタデータをリビジョンに追加してから、すべてをロードします。それがあなたを助ける他の人々を助けるので、この問題の原因が何であるかを確認してください。
—
kraftner 2016
@kraftnerがACFを無効にしたので、何の違いもありません。
—
Paul Cullen
wp-config(WP_MAX_MEMORY_LIMIT)でどのくらいのメモリを使用していますか?memory_limitのPHP.INI値は何ですか?それらを最大限に引き上げてみてください。また、mysql構成ファイルを確認します。
—
Emanuel Rocha Costa
IveはPHPとWP_MAX_MEMORY_LIMITを一時的に512に上げて、効果がなくなった 私のMySQLの設定ファイルは以下のとおりです。
—
ポール・カレン
default-storage-engine=MyISAM innodb_file_per_table=1 max_allowed_packet=268435456 open_files_limit=10000 query_cache_size=64M log_slow_queries = 1 log-slow-queries=/var/log/mysql.slow.log log-error=/var/log/mysqld.log general_log_file = /var/log/mysql_general.log
カスタム投稿タイプの「アーティスト」は(ページのように)階層的ですか?..もしそうなら、すべての投稿が管理ダッシュボードで照会されるため、これが原因である可能性があります。アプリケーションで許可されている場合は、「アーティスト」CPTの階層をfalseに変更して、メモリの問題が軽減されるかどうかを確認できます
—
locomo