Wissensdatenbank (FAQ)

Plugin Update verursacht einen fatalen Fehler und das Plugin wird deaktiviert

Du hast eines unserer Plugins geupdated bzw. es wurde automatisch updated und plötzlich wurde das Plugin aufgrund eines fatalen Fehlers deaktiviert und lässt sich ggf. nicht mehr aktivieren? Dies ist ein Fehler in WordPress Core und in diesem Artikel erklären wir dir, wieso dies passiert und wie du es wahrscheinlich lösen kannst.

Problem identifizieren

Meistens erhältst du nach einem fehlerhaften Update direkt eine E-Mail von deiner WordPress Instanz, welche dich darauf hinweist, dass ein Plugin aufgrund eines fatalen Fehlers deaktiviert wurde. Folgende Fehlermeldung könntest du dabei vorfinden:

Warning: require_once(/wp-content/plugins/real-cookie-banner-pro/inc/base/others/start.php):
Failed to open stream: No such file or directory in /wp-content/plugins/real-cookie-banner-pro/index.php on line 48
Warning: include(..\wp-content\plugins\real-thumbnail-generator-lite\vendor\composer/../devowl-wp/real-product-manager-wp-client/src/client/ClientUtils.php): Failed to open stream: No such file or directory in ..\wp-content\plugins\cloudflare\vendor\composer\ClassLoader.php on line 444
Ein Fehler vom Typ E_COMPILE_ERROR wurde in der Zeile 48 der Datei /wp-content/plugins/real-cookie-banner/index.php
Fehlermeldung: require_once(): Failed opening required '/wp-content/plugins/real-cookie-banner/inc/base/others/start.php' (include_path='.:/usr/lib/php7.4')

Neben diesen Beispielen kann die Fehlermeldung fĂĽr jeden beliebige Dateinamen auftauchen.

Die Fehlermeldung Failed to open stream bedeutet, dass WordPress bzw. dein PHP Server versucht, eine Datei zu öffnen, welche jedoch nicht existiert. In unserem Fall handelt es sich hier um Plugin-Dateien, welche während des Update-Prozesses nicht verschoben werden konnten. Wie im nachfolgendem Screenshot zu sehen, findest du vermutlich nur einen Teil der Plugin-Dateien von bspw. Real Cookie Banner, wenn du den Plugin-Ordner via FTP prüfst. Normalerweise solltest du weitere Ordner wie inc vorfinden.

Lösung, um das Plugin wieder zu aktivieren

Wie oben bereits erwähnt, hat WordPress aus Sicherheitsgründen das Plugin komplett deaktiviert, sodass deine Website weiterhin erreichbar ist. Du solltest nun folgende Schritte befolgen, um unser Plugin wieder wie vorher verwenden zu können:

  1. Logge dich in deine WordPress Instanz ein
  2. Navigiere zu deinen installierten Plugins
  3. Scrolle zu dem jeweiligen Plugin, welches deaktiviert wurde
  4. Uninstall it completely (don’t worry, during the uninstall we don’t delete any data like folders in Real Media Library or your settings for Real Cookie Banner!).
  5. Lade das Plugin erneut herunter
    1. Sollte es sich um eine kostenlose Version unseres Plugins handeln, kannst du dies ĂĽber Plugins > Installieren erneut installieren
    2. Sollte es sich um ein gekauftes Produkt handeln, logge dich in unserem Kundencenter ein und lade das Plugin erneut herunter. Lade das Plugin anschlieĂźend ĂĽber Plugins > Installieren > Hochladen erneut hoch.
    3. Sollte es sich um ein gekauftes Produkt auf CodeCanyon.net handeln, navigiere zu codecanyon.net/downloads und lade dort das Plugin erneut herunter. Lade das Plugin anschlieĂźend ĂĽber Plugins > Installieren > Hochladen erneut hoch.

Fehlgeschlagene Plugin-Updates in Zukunft vermeiden

Wie im Einleitungstext bereits erwähnt, handelt es sich bei dieser Art von fehlerhaften Updates um ein Problem mit dem WordPress Core, d. h. dies kann für jedes deiner Plugins auftreten (je nach Größe des Plugins). WordPress selbst ist sich diesem Problem bereits bewusst, "testet" und forscht jedoch noch an einer Lösung. Eine temporäre Lösung kann durch das von dem WordPress Core Team bereitgestellte Plugin Rollback Update Failure gefunden werden. Installiere dieses Plugin und prüfe, ob das Problem erneut auftritt.

Sollte das Problem weiterhin auftreten, poste bitte das Problem direkt an das WordPress Core Team, so wie dieser User. Da das Problem unserer Auffassung nur bei automatischen Updates auftritt, nicht aber bei Updates über einen Klick auf "Update" (die UI hat einen Rollback-Modus bereits implementiert), kannst du zusätzlich noch automatische Updates für das jeweilige Plugin deaktivieren.

Technische Ursache

Du möchtest wissen, wieso dieses Problem überhaupt auftritt? Wir versuchen, dies mal kurz und verständlich, aber auch technisch zusammenzufassen. Ein WordPress Entwickler hat dies in einem öffentlichen Ticket auf folgende Ursache zurückgeführt (übersetzt):

After […] there is an error when updating large plugins such as Gutenberg or WooCommerce. After debugging the issue, it seems to be due to a PHP timeout and depends on the server’s configuration (which is why the failure only occurs for large plugins). The way we delete a directory in PHP is by going through all files in that directory and deleting them one by one (as far as I know this is the only way). As a result, deleting or restoring a backup of a large plugin takes more time than expected.

Dies beudetet, dein Server bzw. die Implementierung, wie WordPress Updates einspielt, ist schlicht zu langsam. Sollte ein Plugin aus vielen einzelnen Dateien bestehen, kann dies zu Problemen führen. Während des gesamten Prozesses, beginnend mit dem Zippen des alten Plugin-Ordners, löschen des alten Plugin-Ordners, entpacken der neuen Version in einen temporären Ordner und abschließendem Kopieren der neuen Dateien in den Zielordner, kann dies zu einem PHP Timeout deines Servers führen (PHP erlaubt je nach Konfiguration nur eine bestimmte Zeit an laufender Ausführzeit). Sollte der Timeout im letzten Schritt (beim Kopieren der neuen Dateien) auftreten, wird der Vorgang abgebrochen und die restlichen Dateien wurden nicht mehr kopiert.

Das WordPress Team kennt eine potenzielle Lösung und hat diese ebenfalls unter einem öffentlichen Ticket dokumentiert. WordPress möchte einen Mechanismus einführen, um fehlerhafte Plugin / Theme Updates automatisch aus einem Backup wiederherzustellen und das Kopieren der neuen Dateien allgemein beschleunigen. Da es sich bislang um eine experimentelle Lösung handelt, wurde diese in ein Plugin ausgelagert: Rollback Update Failure (hier findest du die Code Stelle im WordPress Core der Auslagerung).

WordPress Plugins von devowl.io

Finde hilfreiche Artikel

Themen