WordPress 플러그인 업데이트로 사이트가 먹통 (2.4.6 --> 2.4.7 및 2.4.8)

WordPress 멀티사이트 환경에서 WP-Discourse 플러그인을 사용 중입니다. 네트워크 내 두 개의 사이트는 각각 다른 두 개의 Discourse 사이트와 SSO를 위해 이 플러그인을 사용하고 있으며, 나머지 네트워크 사이트들은 이 플러그인을 사용하지 않습니다. 2.4.6 버전까지는 정상적으로 작동했지만, 그 이후 버전에서는 네트워크 전체에 치명적 오류가 발생합니다. 2.4.7 업데이트가 실패한 후 다시 시도하기 위해 다음 버전을 기다렸지만, 동일한 문제가 발생했습니다.

해당 네트워크는 WordPress 5.4.1과 PHP 5.6.40을 사용하고 있습니다. 두 환경 모두 오래되었음을 인지하고 있으나, 업그레이드할 수 없는 사정이 있어 이를 언급합니다.

이 문제를 해결하기 위해 어떤 조치를 취해야 할까요? 조언이나 팁을 주시면 감사하겠습니다.

해당 오류에 대해 자세히 설명해 주실 수 있나요?

4년 넘게 EOL(지원 종료)이 된 버전입니다…

그런가요? 보통 그런 말은 최소한 하나 이상의 방치된 커스텀 플러그인을 의미합니다. 그렇다면 당신의 진짜 문제는 WP-Discourse, 오래되고 깨진 PHP 버전, 또는 WordPress 취약점이 아닙니다. 너무 오래된 버전을 사용하고 있는 이유, 즉 그 근본적인 문제를 즉시 수정해야 합니다.

솔직히 부끄럽지만, 멀티사이트 네트워크에는 업데이트가 불가능해서 WordPress나 PHP를 업데이트하려고 하면 깨지는 테마들이 있습니다. 참고로, 멀티사이트가 아닌 웹사이트들은 전부 최신 상태로 유지하고 있는데, 멀티사이트만 정말 엉망이죠…

사이트를 복구하기 위해 급하게 플러그인을 2.4.6 버전으로 되돌렸기 때문에 자세한 정보가 많이 없습니다. 로그 기록을 켜서 문제를 잠시 재현해 볼 수 있는지 확인해 보겠습니다.

다음은 관련 있는 모든 오류 및 경고입니다:

[06-Jan-2023 18:11:10 UTC] PHP Fatal error:  Call to undefined function register_block_type_from_metadata() in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/blocks/comments/comments.php on line 46

[06-Jan-2023 18:11:10 UTC] PHP Fatal error:  Call to undefined function register_block_type_from_metadata() in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/blocks/comments/comments.php on line 46

[06-Jan-2023 18:11:12 UTC] PHP Fatal error:  Call to undefined function register_block_type_from_metadata() in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/blocks/comments/comments.php on line 46

[06-Jan-2023 18:11:12 UTC] PHP Fatal error:  Call to undefined function register_block_type_from_metadata() in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/blocks/comments/comments.php on line 46

[06-Jan-2023 18:11:14 UTC] PHP Fatal error:  Call to undefined function register_block_type_from_metadata() in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/blocks/comments/comments.php on line 46
[06-Jan-2023 18:11:32 UTC] PHP Fatal error:  Class 'WPDiscourse\DiscourseComment\DiscourseComment' not found in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/wp-discourse.php on line 70

[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:32 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37

[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37
[06-Jan-2023 18:11:33 UTC] PHP Warning:  Missing argument 2 for WPDiscourse\Logs\Logger::create(), called in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/discourse-base.php on line 62 and defined in /var/www/vhosts/groups.ismrm.org/httpdocs/wp-content/plugins/wp-discourse/lib/logs/logger.php on line 37

저는 정확한 원인을 모르지만, PHP 버전이 너무 오래되었거나(가끔은 너무 최신인 경우도 있음) 그런 경우에도 WordPress에서 매우 유사한 오류가 발생하는 것을 여러 번 본 적이 있습니다.

해당 함수는 WordPress 5.5.0에서 도입되었습니다. WordPress 5.5는 2.5년 이상 지난 버전입니다. 업그레이드를 막고 있는 "이유"들을 해결하고 WordPress(및 PHP)를 업그레이드하는 것이 좋습니다.

플러그인이나 WordPress 테마 중 하나는 깨질 것이며, 현재 최신 WordPress에서 작동하지 않는 것은 테마입니다. 따라서 솔직히 말하자면, 이는 WP Discourse 플러그인의 문제가 아니라 테마의 문제입니다.

그렇다면, 이전처럼 하위 호환성을 유지할 의도가 없다면 WP-Discourse 플러그인 페이지를 업데이트하여 "필요한 WordPress 버전: 5.5 이상"이라고 명시해야 합니다. 현재는 "4.7 이상"으로 표시되어 있습니다.

어떤 WP 테마를 사용 중인지 모르겠지만, 때로는 (경험상) 테마를 PHP 7+ 호환으로 만드는 것이 몇 줄의 코드 수정으로 끝나는 경우도 있습니다.