WPML
상태
미해결
보고된 제품
WPML Multilingual CMS 4.6.4
주제 태그
Bug

문제 개요

OpCache 캐싱 엔진을 사용하는 서버에서 WPML 4.6.4로 업데이트하면 백엔드를 사용할 때 예기치 않은 치명적인 오류가 발생할 수 있습니다. 특히 배포 파이프라인을 사용하는 경우에 발생합니다.

2023/06/22 02:36:16 [error] 359706#359706: *507646 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught TypeError: WPML\User\UsersByCapsRepository::__construct(): Argument #2 ($languagePairs) must be of type WPML\User\LanguagePairs\ILanguagePairs, WPML_Language_Pair_Records given, called in .../wp-content/plugins/sitepress-multilingual-cms/classes/container/class-config.php on line 63 and defined in .../wp-content/plugins/sitepress-multilingual-cms/classes/user/UsersByCapsRepository.php:18

임시 해결 방법

진행하기 전에 사이트를 전체 백업했는지 확인하세요.

옵션 1

PHP 서버를 다시 시작하면 이 문제가 해결됩니다. 서버 제공업체에 문의하여 PHP-FPM 서비스 다시 시작을 요청하세요.

옵션 2

1. 새 파일이 있는지 확인

  • ../wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php 파일을 여세요.

  • 파일이 올바른 위치에 있는지 확인하세요. 14번째 줄에 다음 코드가 포함되어 있어야 합니다.
    class WPML_Language_Pair_Records implements ILanguagePairs {

    다음 코드 대신:

    class WPML_Language_Pair_Records {


  • 그렇지 않은 경우 배포 프로세스에 문제가 있음을 나타내므로 이를 확인해야 합니다.
2. 파일 내용이 올바른 경우

또는 해당 특정 파일에 대해 OPCache를 무효화할 수 있습니다.


  • CLI/SSH가 아닌 HTTP 제공 스크립트에서 다음을 실행하세요.
    opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);

3. 마지막으로 남은 /Language/ 폴더가 없는지 확인

  • /wp-content/plugins/sitepress-multilingual-cms/classes/ 폴더를 여세요.

  • 대문자로 된 /Language/ 폴더가 남아 있는지 확인하세요.

  • 남아 있다면 /Language/ 디렉터리를 제거하고 /language/ 디렉터리에 WPML 4.6.6 릴리스의 파일이 있는지 확인하세요.

문제가 지속되면 WPML 지원팀에 문의하세요. phpinfo()의 내용을 보내 주시면 문제 해결에 큰 도움이 됩니다.

알려진 모든 문제 →