Mam problem z WordPress, w którym umiera PHP. Zwiększyłem pamięć, ale proces PHP przeskakuje do 100% wykorzystania procesora, a następnie umiera, a Apache generuje błąd 500.
Próbowałem zmusić Apache do zarejestrowania czegoś lub PHP / MySQL do zarejestrowania błędu, ale nic nie jest rejestrowane poza ogólnym błędem 500.
Numer 500 znajduje się na stronie listy, np .:
/wp-admin/edit.php?post_type=artist
Obecnie mamy ponad 1200 wpisów artystów w WordPress, jeśli dołączę sortowanie według dat w ten sposób:
/wp-admin/edit.php?post_type=artist&orderby=date
Potem lista ładuje się dobrze, nawet szybko! Siedziałem i obserwowałem dziennik zapytań MySQL i wydaje się, że WordPress ładuje metadane dla każdego pojedynczego postu (wszystkie 1200), aby utworzyć listę około 10. W przypadku tylko jednego zapytania zwraca 92 000 wierszy. Używam zaawansowanych pól niestandardowych i szablonu z własną strukturą, więc do każdego postu dołączona jest spora część metadanych. Myślę, że jest to zbyt wiele danych, aby PHP mógł je przetworzyć i osiągam tutaj pułap. 1200 stanowisk prawdopodobnie podwoi się w ciągu następnego roku.
Jak zmusić początkowe ładowanie strony do dodania sortowania według daty lub rozwiązać problem z ładowaniem wszystkich tych metadanych?
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
Odpowiedzi:
Spróbuj zmienić hierarchiczną: fałsz w definicji CPT (jeśli aplikacja na to pozwala).
Gdy CPT są ustawione na hierarchiczne: prawda, wszystkie posty będą sprawdzane w panelu administracyjnym, co może powodować problemy z pamięcią.
źródło
Problem polegał na tym, że CPT był ustawiony na hierarchiczny, przełączając go na hierarchiczny: fałsz w functions.php rozwiązał problem.
źródło