WPML
Status
Offen
Gemeldet für
WPML Multilingual CMS 4.6.4
Themen-Tags
Bug

Übersicht über das Problem

Ein Update auf WPML 4.6.4 auf einem Server mit der Caching-Engine OpCache kann zu einem unerwarteten schwerwiegenden Fehler bei der Verwendung Ihres Backends führen. Insbesondere bei der Verwendung einer Deployment-Pipeline.

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

Problemumgehung

Bitte stellen Sie sicher, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.

Option 1


Ein Neustart Ihres PHP-Servers sollte dieses Problem beheben. Bitte kontaktieren Sie Ihren Server-Anbieter und fordern Sie einen Neustart des PHP-FPM-Dienstes an.

Option 2

1. Überprüfen Sie, ob die neuen Dateien vorhanden sind

  • Öffnen Sie ../wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php

  • Überprüfen Sie, ob die Datei korrekt platziert ist. Sie sollte in Zeile 14 diesen Code enthalten:
    class WPML_Language_Pair_Records implements ILanguagePairs {

    Anstelle von:

    class WPML_Language_Pair_Records {


  • Wenn dies nicht der Fall ist, deutet das auf ein Problem im Bereitstellungsprozess hin, das Sie überprüfen müssen.
2. Wenn Sie feststellen, dass der Dateiinhalt korrekt ist

Sie können alternativ Ihren OPCache für diese spezifische Datei invalidieren.


  • Führen Sie dies über ein per HTTP aufgerufenes Skript aus (nicht CLI/SSH):
    opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);

3. Stellen Sie abschließend sicher, dass kein Ordner /Language/ verblieben ist

  • Öffnen Sie Ihren Ordner /wp-content/plugins/sitepress-multilingual-cms/classes/.

  • Suchen Sie nach einem verbliebenen Ordner /Language/ mit Großbuchstaben.

  • Wenn dies der Fall ist, entfernen Sie bitte das Verzeichnis /Language/ und stellen Sie sicher, dass das Verzeichnis /language/ die Dateien aus der WPML-Version 4.6.6 enthält.

Wenn das Problem weiterhin besteht, kontaktieren Sie bitte den WPML-Support. Es wäre sehr hilfreich, wenn Sie uns den Inhalt Ihrer phpinfo() senden würden.

Alle bekannten Probleme →