- 状态
- 未解决
- 报告针对
- 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 { - 如果不是这种情况,则表明部署过程存在问题,您需要进行检查。
您也可以选择使该特定文件的 OPCache 失效。
- 从 http 服务的脚本(而不是 CLI/SSH)运行以下命令:
opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);
- 打开您的 /wp-content/plugins/sitepress-multilingual-cms/classes/ 文件夹。
- 查找是否残留带有大写字母的 /Language/ 文件夹。
- 如果是这种情况,请删除
/Language/目录,并确保/language/目录中包含来自 WPML 4.6.6 版本的文件。
如果问题仍然存在,请联系 WPML 支持。如果您能 向我们发送您的 phpinfo() 内容,将对我们非常有帮助。