500 Error wenn man auf Cache / Performance geht

Hallo,
wenn ich im BE auf Cache / Performance gehe bekomme ich einen 500 - Internal Server Error.
Woran kann das liegen?
Kann das ein Zusammenspiel mit dem invalid Token haben der immer wieder bei Bestellungen kommt?

Danke und VG
NAdja

Welche PHP-Version ist im Einsatz?

Die PHP-Version ist 8.0.17
VG Nadja

Dann stell’ mal bitte testweise auf Version 7 um. Mit PHP 8 haben wir leider das gleiche Problem.

Ich glaube nicht, dass das pauschal an PHP 8 liegt, dann müsste das ja jeden treffen, der auf PHP 8 ist. Bei mir unter 8.0.26 und 8.1.13 kommt das Modul ohne zu meckern.
Ein Hinweis die Tage war auf das Plugin SwagEssentials, ich glaube aber nicht, dass das installiert ist.
Um nicht die Glaskugel befragen zu müssen, wären genauere Fehlermeldungen schon wichtig. Der 500 ist ja kein anonymer Fehlercode.
Also dazu Errorlog in PHP aktivieren und dann den Log auslesen.

Ggf. auch mal in die Console vom Chrome gucken: F12 und dann unter Tab Konsole mal gucken.

Tatsache!
Aber das kann doch nicht sein! PHP 7.4 ist aus dem Support raus.
VG Nadja

Wir haben auch schon alles Mögliche versucht. Fakt ist, dass der Fehler nur mit PHP 8 auftritt und zwar mit allen uns zur Verfügung stehenden Versionen.

Kann ich ebenfalls nicht bestätigen - PHP 8.0.27 im Einsatz - Modul geht als auch der Checkout.

Fehler 500 lassen sich jedoch debuggen, wie von @sonic beschrieben.

Viele Grüße

Ich hab nur die PHP 8.0.16 zur Verfügung. Daher kan nich es mit anderen 8er Versionen nicht testen.
Im Error-File steht folgendes:
PHP Fatal error: Uncaught Error: Call to undefined function Shopware\Components\opcache_get_status() in /PFAD/engine/Shopware/Components/CacheManager.php:418, referer: DOMAIN/backend/
mod_fcgid: stderr: Stack trace:, referer:DOMAIN/backend/
mod_fcgid: stderr: #0 /PFAD/engine/Shopware/Controllers/Backend/Cache.php(83): Shopware\Components\CacheManager->getOpCacheCacheInfo(), referer: DOAMIN/backend/
mod_fcgid: stderr: #1 /PFAD/engine/Library/Enlight/Controller/Action.php(187): Shopware_Controllers_Backend_Cache->getInfoAction(), referer:DOMAIN/backend/
mod_fcgid: stderr: #2 /PFAD/engine/Library/Enlight/Controller/Dispatcher/Default.php(467): Enlight_Controller_Action->dispatch(‚getInfoAction‘), referer: DOMAIN/backend/
mod_fcgid: stderr: #3 /PFAD/engine/Library/Enlight/Controller/Front.php(225): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)), referer: DOMAIN/backend/
mod_fcgid: stderr: #4 /PFAD/engine/Shopware/Kernel.php(197): Enlight_Controller_Front->dispatch(), referer:DOMAIN/backend/
mod_fcgid: stderr: #5 /PFAD/vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(85): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true), referer: DOMAIN/backend/
mod_fcgid: stderr: #6 /PFAD/vendor/symfony/http-kernel/HttpCache/HttpCache.php(479): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), Object(Symfony\Component\HttpFoundation\Request), 1, true), referer: DOAMIN/backend/
mod_fcgid: stderr: #7 /PFAD/engine/Shopware/Components/HttpCache/AppCache.php(266): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL), referer: DOMAIN/backend/
mod_fcgid: stderr: #8 /PFAD/vendor/symfony/http-kernel/HttpCache/HttpCache.php(269): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true), referer:DOMAIN/backend/
mod_fcgid: stderr: #9 /PFAD/engine/Shopware/Components/HttpCache/AppCache.php(106): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true), referer: DOMAIN/backend/
mod_fcgid: stderr: #10 /PFAD/shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)), referer: DOMAIN/backend/
mod_fcgid: stderr: #11 {main}, referer: DOMAIN/backend/
mod_fcgid: stderr: thrown in /PFAD/engine/Shopware/Components/CacheManager.php on line 418, referer: DOMAIN/backend/

Wollte gerade ergänzen: Könnte auch am opcache liegen, da kommt der Log.
Da klemmt(e) es in der Tat bei Shopware und unvollständiger PHP-Installation vom Hoster.
Welche SW-Version hast Du?

An der gleichen Stelle scheint es bei uns auch zu haken. Nur gehe ich davon aus, dass dies bei einem offiziellen Hoster richtig konfiguriert sein sollte, zumal es ja mit Version 7 problemlos funktioniert.

Bei PHP 7 war der opcache von Zend ein Zusatzmodul, ab 8 ist es Bestandteil von PHP (wenn ich das richtig in Erinnerung habe). Das macht in der Einrichtung und „Erkennung“ schon einen Unterschied.

Schau’ mal in die PHP Einstellungen, falls Plesk im Einsatz ist als Web-Verwaltung.

Plesk hat im Standard aus Sicherheitsgründen bei disable_functions „opcache_get_status“ drin - daran stört sich das Shopware Cache Modul und Du musst die Zeile einfach leeren - dann ist der Fehler weg. Das Invalid Token wird vermutlich an einem Plugin liegen.

Vorher:

Nachher:

Auf diese Zeile habe ich leider keinen Zugriff…

Dann hast Du vermutlich einfaches Shared Hosting.

Evtl. ändert der Hoster die Einstellung für Dich, wobei es halt im Shared Hosting eine Sicherheitslücke darstellt, da sich mit der Funktion halt der gesamte OPCache auslesen lässt (also auch der von anderen Kunden auf dem System).

Der OPCache selbst funktioniert, Du kannst halt nur den Status im Shared Hosting abfragen - und genau das macht Shopware in dem Modul.

Genau das scheint auch bei mir das Problem zu sein. Ich seh zwar, dass es bei disable_functions drin ist, aber ich kann die Zeile nicht bearbeiten. Wo kann ich das in Plesk machen?
grafik

Okay, danke und unter PHP 7 wurde das Ganze anders gemanaged, weil die Einstellung die gleiche ist, es dort aber zu funktionieren scheint?

ok, das bedeutet, dass ich nur den Status nicht auslesen kann, aber der Cache an sich funktioniert. Das wäre mir ja egal. Solange es sonst keinen Einfluss hat.

Ich habe auch noch das Problem des „invalide Token“ beim abschicken der Bestellung (Fehler beim Checkout - Invalides Formular-Token! - #54 von nadjak). Das kann damit aber nichts zu tun haben oder?

VG Nadja

Ja genau - bei PHP 8.1 ist der „Fehler“ soweit ich mich erinnere wieder weg.