Zum Inhalt springen
shopmeister

● Shopware 6 · Troubleshooting

Shopware 6: Apps & Themes werden nicht angezeigt

Nach einem Shopware-6-Update sind unter „Meine Erweiterungen“ keine Apps und Themes mehr sichtbar. Ursache ist meist ein open_basedir-Konflikt mit Composer. So löst du den 500-Fehler.

Nach einem Shopware-6-Update zeigt die Administration unter Erweiterungen → Meine Erweiterungen plötzlich keine Apps und keine Themes mehr an, die Liste bleibt komplett leer. Das Deaktivieren einzelner Apps ändert nichts. In den meisten Fällen ist keine App defekt oder inkompatibel, sondern ein Server-Konfigurationsproblem verhindert, dass Shopware die Erweiterungsliste überhaupt laden kann.

Symptom

  • Die Seite „Meine Erweiterungen“ ist leer (weder Apps noch Themes).
  • Auch deaktivierte Apps verschwinden aus der Liste.
  • In der Browser-Konsole erscheint ein AxiosError mit Request failed with status code 500.
  • Über die CLI (bin/console plugin:list) funktioniert alles, nur der Admin im Browser nicht.

Ursache

Beim Öffnen der Erweiterungsseite ruft die Administration intern refreshExtensions auf. Shopware nutzt dabei Composer, um die installierten Plugins zu ermitteln. Composer möchte dafür seine globale Konfiguration lesen, und genau hier scheitert es:

Warning: is_file(): open_basedir restriction in effect.
File(/usr/local/bin/composer/config.json) is not within
the allowed path(s): (/var/www/vhosts/example.de/:/tmp/)

Zwei Dinge greifen ineinander:

  1. Die Umgebungsvariable COMPOSER_HOME zeigt auf ein Verzeichnis außerhalb des Webspace (z. B. /usr/local/bin/composer).
  2. Die PHP-Direktive open_basedir (typisch bei Plesk-Hosting) erlaubt PHP nur den Zugriff auf den Vhost-Pfad und /tmp. Der Composer-Pfad ist gesperrt → Fatal Error → HTTP 500.

Auf der CLI tritt der Fehler nicht auf, weil dort meist kein open_basedir greift. Betroffen ist nur der Web-/PHP-FPM-Kontext.

Diagnose

Den echten Fehler liefert die Server-Antwort, nicht die Browser-Konsole:

  1. DevTools öffnen (F12) → Tab Network → Seite „Meine Erweiterungen“ neu laden.
  2. Den rot markierten Request mit Status 500 anklicken → Tab Response. Im JSON unter errors[0].detail steht die echte Fehlermeldung.
  3. Alternativ im Server-Log: tail -n 150 var/log/prod.log (bzw. dev.log).

Steht dort eine open_basedir restriction-Meldung mit einem composer-Pfad, trifft diese Anleitung zu.

Lösung

Es gibt zwei saubere Wege, einer genügt.

Option A (empfohlen): COMPOSER_HOME in einen erlaubten Pfad legen

COMPOSER_HOME auf ein beschreibbares Verzeichnis innerhalb des Vhosts setzen:

mkdir -p /var/www/vhosts/example.de/example.de/var/composer

Diesen Wert dann im PHP-FPM-Kontext verfügbar machen. Bei Plesk über Websites & Domains → Domain → PHP-Einstellungen → Zusätzliche Konfigurationsanweisungen:

env[COMPOSER_HOME] = /var/www/vhosts/example.de/example.de/var/composer

Vorher prüfen, woher der falsche Wert kommt, damit er nicht überschreibt:

grep -rn COMPOSER_HOME /etc/environment /etc/php* 2>/dev/null

Vorteil: behebt die eigentliche Fehlkonfiguration, statt sie nur zu umgehen.

Option B (schnell): open_basedir erweitern

In denselben PHP-Einstellungen den Parameter open_basedir um den Composer-Pfad ergänzen (bestehende Pfade beibehalten):

/var/www/vhosts/example.de/:/tmp/:/usr/local/bin/composer/

Nachteil: PHP darf dann auch außerhalb des Webspace lesen. Dafür funktioniert es sofort und ohne neues Verzeichnis.

Abschluss

Nach der Änderung:

bin/console cache:clear

PHP-FPM neu laden (Plesk macht das beim Speichern der PHP-Einstellungen meist automatisch), dann den Admin neu laden. Die Erweiterungsseite lädt wieder, alle Apps und Themes erscheinen.


Du kommst nicht weiter oder brauchst Unterstützung bei deinem Shopware-Projekt? Zum Support oder service@shopmeister.org.

Du kommst nicht weiter?

Wir schauen uns deinen Shop an und helfen dir, das Problem zu lösen.