Direkt nach Installation: 500 Internal Server Error

Hi ihr lieben

Ich habe eine Datenbank eingerichtet, mein PHP auf 7.2 umgestellt und shopware ganz normal via Browser und dem Menü installiert. Nachdem ich dann meine Daten (also Name, Mailadresse etc) im letzten Schritt eingeben muss, leitet er auf die Seite /finish weiter, aber anstatt nun eine Seite zu sehen, oder im Backend zu sein, kommt bei mir einfach nur folgende Meldung:

“Oops! An Error Occurred - The server returned a “500 Internal Server Error”.
Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.”

Woran kann das liegen? Was mache ich falsch?

P.S.: Bei Shopware 5 hatte ich bei der Installation kein solches Problem

Hi Soeren,

schau’ mal in den Error.log von deinem Webserver. Da muss eine detailierte Fehlermeldung stehen. Wenn du diese hier postest, können wir dir sicher weiterhelfen.

Ansonsten kann man nur raten und mal die Basics abklopfen. Zum Beispiel: sind die Mindestanforderungen an den Server erfüllt? https://docs.shopware.com/en/shopware-platform-dev-en/getting-started/requirements

Viele Grüße

Ich bin bei AllIncl und ich weiss leider nicht, wo ich diesen Error Log finden kann.
Ich nutze kein Linux System, sondern arbeite mit MacOS 10.15, oder Windows.

Dann am besten mal bei allinkl nachfragen. Vielleicht weiß auch ein anderer allinkl Nutzer hier im Forum Bescheid. Oder mal googeln.

Viele Grüße

Ich bekomme die selbe Meldung direkt nach dem Deployen auf den Server. Das Errorlog des Servers zeigt nichts an. Der Statuscode ist 200. Die Meldung ist auch keine Servermeldung, die sieht bei uns anders aus.

Hallo.

Ich habe quasi das gleiche Problem aber immerhin schon einen Anhaltspunkt woran es liegen könnte.

Habe meinen Shop auf einem Entwicklungsserver installiert und eine Subdomain eingerichtet, die direkt in das /public Verzeichnis leitet.

Wenn ich den Shop über die Subdomain aufrufe bekomme ich ebenfalls einen 500er. Andere PHP-Dateien wie z.B. info.php und auch das Adminbackend kann ich problemlos aufrufen. Ebenfalls funktioniert die index.php in /public, wenn ich den Shop über die eigentliche Domain des Servers + Unterverzeichnis des Shops aufrufe.

Habe das Problem heute mal verfolgt und bin an folgender Stelle angelangt, wo bei mir im Programmablauf schluss ist.

Die Stelle ist in /vendor/shopware/core/HttpKernel.php bei Zeile 137

        // transform request to resolve seo urls and detect sales channel
        $transformed = $container
            ->get(RequestTransformerInterface::class)
            ->transform($request);

Bis zu dieser Stelle läuft das Programm durch. Aber beim Versuch $transformed zuzuweisen gibt es den 500er.

Hat dazu jemand eine Idee?
Kann es evtl. an einer problematischen .htaccess Einstellung liegen, das der Request nicht korrekt verarbeitet werden kann?

Werde morgen, wenn die Logdateien von heute verfügbar sind, mal reinschauen. Vielleicht gibt es ja eine hilfreiche Meldung.

Ein 500 Error mit funktionierendem Admin liegt meistens an der fehlenden URL bei Domains im Saleschannel. Entweder die Subdomain eintragen oder einfach localhost falls der Webserver samt SW Installation auf dem eigenen PC läuft.

2 „Gefällt mir“

@Plotec schrieb:

Ein 500 Error mit funktionierendem Admin liegt meistens an der fehlenden URL bei Domains im Saleschannel. Entweder die Subdomain eintragen oder einfach localhost falls der Webserver samt SW Installation auf dem eigenen PC läuft.

Das ist die Lösung, zumindest in meinem Fall.

Habe mir mal die Logdatei von Shopware angeschaut.
Dort sind folgende Einträge zu finden:

request.CRITICAL: Uncaught PHP Exception TypeError: "Argument 2 passed to Shopware\Core\System\SalesChannel\Context\SalesChannelContextService::get() must be of the type string, null given, called in /.../vendor/shopware/storefront/Framework/Routing/StorefrontSubscriber.php on line 344" at /.../vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextService.php line 67 {"exception":"[object] (TypeError(code: 0): Argument 2 passed to Shopware\\Core\\System\\SalesChannel\\Context\\SalesChannelContextService::get() must be of the type string, null given, called in /.../vendor/shopware/storefront/Framework/Routing/StorefrontSubscriber.php on line 344 at /.../vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextService.php:67)"} []

php.CRITICAL: Uncaught Error: Argument 2 passed to Shopware\Core\System\SalesChannel\Context\SalesChannelContextService::get() must be of the type string, null given, called in /.../vendor/shopware/storefront/Framework/Routing/StorefrontSubscriber.php on line 344 {"exception":"[object] (TypeError(code: 0): Argument 2 passed to Shopware\\Core\\System\\SalesChannel\\Context\\SalesChannelContextService::get() must be of the type string, null given, called in /.../vendor/shopware/storefront/Framework/Routing/StorefrontSubscriber.php on line 344 at /.../vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextService.php:67)"} []

Durch die fehlende URL in der Storefront wird hier ein „null“ Wert übergeben und dadurch der Fehler ausgelöst.

Nach Eintrag der Subdomain in der Storefront funktioniert es nun wie es soll.

1 „Gefällt mir“

In my case I migrated from a server to local.

Debugged,  narrowed until found 2 exceptions.

One of them was caused because I did not have set correctly the URLs of the stores in table sales_channel_domain.

The other was comming from config/jwt/private.pem and public.pem

These 2 files needed permissions as in:


     if (in\_array($keyPathPerms, ['400', '440', '600', '640', '660'], true) === false) {

File vendor/league/oauth2-server/src/CryptKey.php

Happy debugging …

Mit der ansonsten sehr einfachen und schnellen Lösung der Dockware stolperte ich über dasselbe Problem und hielt die Installation für fehlerhaft. Tatsächlich kam der 500er nur in der Storefront, während Admin und Adminer funktionierten. Nach Zuweisen des Channels musste ich zudem noch explizit das Default Theme zuweisen, danach lief alles!

Ich habe genau denselben Fehler, wie hast du den Channel zugewiesen?

Vielen Dank!

Hi Ludemann, ich weiß nicht mehr genau wie ich es damals konkret mit Dockware gemacht habe (nutze inzwischen wieder die Standard-Developer-Installation von Shopware, die lokal ebenfalls mit Docker läuft). Grundsätzlich ist das auf der Konsole (CLI) oder im Admin-Bereich im Browser möglich, denn ein kaputtes Frontend bedeutet, wie gesagt, noch lange nicht, dass Admin auch defekt sein muss.

Kommandozeile (innerhalb des Containers):

bin/console theme:change

That starts an assistant that asks you which theme to apply, then asks you to which sales channel.

# bin/console theme:change
Please select a theme:
  [0] Storefront
  [1] MyExampleTheme
 > 1
Please select a sales channel:
  [0] Headless | 98432def39fc4624b33213a56b8c944d
  [1] Storefront | ab429c21ecd84743968feadc60c91604
 > 1
Set and compiling theme "MyExampleTheme" (3faf0d38f2414aefbe12399bd9b45f99) as new theme for sales channel "Storefront"

Das Problem kann übrigens auch auftreten, wenn man versehentlich den Verkaufskanal deaktiviert hat.