У меня проблема в WordPress, где умирает PHP. Я увеличил объем памяти, но процесс PHP переходит на 100% загрузку процессора, затем умирает, и Apache выдает ошибку 500.
Я пытался заставить Apache что-то регистрировать, или PHP / MySQL, чтобы регистрировать ошибку, но ничего не регистрируется, кроме общей ошибки 500.
Проблема 500 находится на странице списка, например:
/wp-admin/edit.php?post_type=artist
В настоящее время у нас есть более 1200 исполнителей в WordPress, если я добавлю сортировку по дате:
/wp-admin/edit.php?post_type=artist&orderby=date
Тогда список загружается нормально, даже быстро! Я сидел и смотрел журнал запросов MySQL, и кажется, что WordPress загружает метаданные для каждого отдельного поста (все 1200 из них), чтобы получить список из 10 или около того. Только для одного из запросов это возвращает 92000 строк. Я использую расширенные настраиваемые поля и шаблон с собственной структурой, поэтому к каждому сообщению прилагается немало метаданных. Я думаю, что это слишком много данных для обработки PHP, и я сейчас нахожу потолок. 1200 постов, вероятно, удвоятся в течение следующего года.
Как можно заставить начальную загрузку страницы добавить сортировку по дате или исправить проблему с загрузкой всех этих метаданных?
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
Ответы:
Попробуйте изменить иерархию: false в определении CPT (если ваше приложение позволяет).
Когда CPT установлены в иерархический режим: true, все сообщения будут запрашиваться на панели администратора, что может вызвать проблемы с памятью.
источник
Проблема заключалась в том, что CPT был установлен на иерархический, переключив его на иерархический: false в functions.php решил проблему.
источник