Installation auf langsamen System bricht ab. [Identifier DB not initialized yet]

Hallo Shopware Community!

Ich versuche aktuell Shopware auf einem recht langsamen System zu installieren.

Bei dem System handelt es sich um einen LXC Container (unter Proxmox) welches seine Daten in einem QCOW2 Image auf normalen Festplatten speichert. (Keine SSD)

Das Problem dabei ist, dass die Performance für z.B. Creates unter MySQL/MariaDB wirklich schlecht ist. Das System schreibt dabei wohl einfach viel zu oft auf die Platte.

Ich habe eigentlich so ziemlich alles an Timeouts oder Limits ausgeschlossen. Der Test das ganze mit dem PHP InBuild Server laufen zu lassen, brachte leider auch keinen Erfolg, Apache oder mein FCGID Setup kann ich also ausschließen. 

Der selbe Test läuft mit gleicher PHP Version und MariaDB Version auf einem System mit SSD’s ohne Probleme durch. Mir ist im übrigen auch bewusst, dass Shopware 5 kein MariaDB Unterstütz, der Fehler ist bei Shopware 6 aber der selbe und die eigentliche Installation funktioniert mit dieser MariaDB Version auch ohne Probleme.

Generell kann ich eine Inkompatibilität ausschließen. Das Setup läuft ohne Probleme durch wenn ich es über die Shell ausführe. Nur die Installation übers Web bricht ab.

Um genau zu sein tritt der Fehler immer beim Datenbank Import auf und bricht dann mit  Identifier DB not initialized yet  ab.

Hat hier jemand vielleicht einen Tip? Setzt das Shopware Setup vielleicht selbst noch irgendwelche Timeouts von denen ich nichts weis? Ich habe z.B. gesehen dass das Setup die max_execution_time auf 120 “erhöht” was natürlich blöd ist wenn ich diese bereits viel höher gestellt habe. Aber sonst konnte ich keine festen Limits finden.

Vielleicht noch memory_limit auf 512M umstellen und noch mal probieren.

@R4M schrieb:

Vielleicht noch memory_limit auf 512M umstellen und noch mal probieren.

memory_limit und dergleichen habe ich alle bereits angepasst. Daran liegt es leider nicht. 

Ich versuche aktuell Shopware auf einem recht langsamen System zu installieren

Nun ja, was soll jetzt dazu noch schreiben? :slight_smile: Wenn du dir ein schwaches System für Shopware aussuchst, dann musst du dies verbessern oder anderen Server nutzen. Shopware ist kein Wordpress, es brauch halt etwas mehr Ressourcen inkl. sogar MySQL-Tuning. Da können unzähliche Faktoren hier noch eine Rolle spielen. 

Welche Shopware-Version hast du denn jetzt? Welche PHP- und MySQL-Version ist im Einsatz. Wie hoch ist der Arbeitsspeicher? … und und und …

Dass das ganze dann grotten Lam läuft ist mir natürlich bewusst. Aber funktionierten sollte das Setup schon. Gibt wirklich keinen mir ersichtilchen Grund, warumd as Setup einfach abbrechen sollte. Wie gesagt, Timeouts und Limits sind alle mehr als Großzügig Eingestellt.

PHP waren 7.2 und 7.3. Datenbank ist MariaDB 10.3. RAM sind 6 GB davon 1GB als memory_limit zugewiesen. OOM hat der Container keinen.

Für all die jenigen, welche ebenfalls das selbe Problem haben. Die Lösung ist recht simpel. Nicht nur setzt der Installer die max_execution_time auf 120 sonder setzt auch mittels session_set_cookie_params die Cookie Lifetime auf 10 Minuten…

Hm, jetzt überlege ich was „session_set_cookie_params“ mit der Datenbank zu tun hat.

Wenn die Datenbank langsam ist, dauert die Installation länger. Wenn die Installation länger als 10 Minuten braucht, läuft die Session aus, was zum Abbruch der Installation führt.

Sind ja doch immer noch einige, die die Installation wegen eines Abbruchfehlers nicht schaffen.

Der Ansatz oben mit den Cookies ist richtig. Shopware setzt ein Cookie, da könnt ihr am Server bzw. System einstellen was ihr wollt. Nach 10 Minuten ist Schluß.
Get zur Datei                      /vendor/shopware/recovery/Install/src/app.php
und ändert den TimeOut. Ich habe verdoppelt von 7200 auf 14400. Dann habt Ihr 20 Minuten Zeit.

$cookie = new SetCookie(‚installed-locale‘, $localeForLanguage($selectedLanguage), time() + 14400, ‚/‘);    //7200

 

evtl. kann man noch am Anfang in der Datei mit der 600 bei

                                   session_set_cookie_params(600, $sessionPath);  

spielen. Bei mir ging es auch ohne.

1 „Gefällt mir“

Danke @ITSE … super Tipp! Ich war schon fast am Verzweifeln mit meiner lokalen Shopware-Version 6 (unter Windows)! Endlich hat die Installation funktioniert - ganz, ganz herzlichen Dank! :wink:

Leider helfen bei mir sämtliche dieser Tipps nicht weiter. Die von ITSE beschriebene Datei app.php gibts leider in Shopware 5.7. nicht mehr (es gibt noch nicht mal mehr die Verzeichnisebene „/shopware/“). Vielleicht hat mir jemand hier noch einen Tipp, was ich sonst noch versuchen könnte. Beisse mir seit nun mehr als 1 Woche an diesem Fehler die Zähne aus. :frowning:

Ich habe die Datei „app.php“ nun doch noch gefunden. Und zwar im "\recovery\install\src" Ordner. Darin habe ich wie von ITSE beschrieben den Timeout auf 14400 erhöht. Leider ohne Erfolg, das Ergebnis ist die folgende Fehlermeldung:

In diesem Artikel wurde eigentlich für die Shopware 6 Version geschrieben. Ich kann mich nicht erinnern, dass schon immer Shopware 5 in der Überschrift stand. Hat es vielleicht jemand verschoben?

Ich habe zwar mit Version 5 angefangen, damals spielte es kaum eine Rolle, wie flott ein System war. Installieren konnte man, jedoch der Shop lief dann schleppend.
Da nun überall Mindestanforderungen an die PHP Version und Datenbank Version bestehen, hat Shopware vielleicht eine neue Installations - Routine mit der app.php entwickelt.

Setzt denn die app.php das Cookie mit der neuen Zeit? Die Cookies mal anschauen. Manche Dateien im Install Ordner werden gar nicht zur Installation genutzt. Wenn ja, denn Wert noch höher setzen.
Aber dann auch die vielen Minuten warten. Am besten einen Timer laufen lassen und prüfen wie lange es braucht, bis die Fehlermeldung kommt. Immer zur gleichen Zeit? Sonst ist es ein anderes Problem.

Schau mal was in der ContainerProvider.php Zeile 158 steht. Manchmal bekommt man Infos, wenn während der Installation die Browser interne Konsole offen ist (rechtsklick Maus im Browser / untersuchen). Dort sieht man zumindest, ob und wann die Installation stoppt und manchmal auch einen besseren Hinweis als die Fehlermeldung von Shopware.

Mittlerweile ist es eher ratsam, doch auf die Version 6 zu gehen. Inzwischen hat sich dort einiges getan.