Wie man PHP-Speicherlimitprobleme in PrestaShop erkennt

Ihre Produktliste wird auf einer leeren, weißen Seite angezeigt. Ein Importvorgang bricht in Zeile 4,300 ab und schlägt auch beim nächsten Versuch an derselben Stelle fehl. Ein Foto wird zwar ohne Fehlermeldung hochgeladen, es wird aber kein Vorschaubild generiert. Drei Personen melden drei Probleme, deren Ursache allen zugrunde liegt.

Die Ursache liegt im Gedächtnis. Solange nichts kaputt geht, achten die meisten Ladenbesitzer nicht auf diese Einstellung, und wenn sie dann kaputtgeht, wird ihr die Schuld für viele Probleme gegeben, die sie nie verursacht hat.

Im Folgenden wird beschrieben, wie Sie PHP-Speicherlimitprobleme in PrestaShop erkennen, die Ursache bestätigen und die nächsten Schritte einleiten. Einige Punkte können Sie selbst überprüfen; die übrigen Informationen müssen Sie Ihrem Hosting-Anbieter übermitteln.

1.0 Was das PHP-Speicherlimit tatsächlich ist

PrestaShop ist in PHP geschrieben. Jedes Mal, wenn jemand eine Seite lädt, wird ein Skript ausgeführt, um diese zu erstellen, und memory_limit begrenzt, wie viel Speicher dieses Skript verwenden darf.

Diese Beschränkung gilt für ein einzelnes Skript, nicht für Ihre gesamte Website und nicht für Ihren gesamten Server, und nahezu alles, was hier verwirrend ist, lässt sich auf diese Unterscheidung zurückführen. 

Im PHP-Handbuch wird der Standardwert für memory_limit mit 128 MB angegeben.

Ein Server mit 16 GB RAM kann also trotzdem bei 128 MB RAM ausfallen. Niemand lügt über die Hardware: PHP setzt eine eigene Obergrenze, weit unter dem, was der Rechner eigentlich zulassen würde, und stoppt das Skript, sobald diese erreicht ist. Viel freier Speicher zusammen mit einer PrestaShop-Meldung über Speichermangel ist eine übliche Kombination, und ein PHP-Fehler wegen Speichermangels in PrestaShop bedeutet dasselbe.

Es gibt zwei Grenzen, und die niedrigere ist die, an die man stößt. PHP-Konfigurationen unverändert lassen und RAM aufrüsten bringt keine Besserung. Daher die Enttäuschung, wenn sich ein Upgrade des Hosting-Pakets als wirkungslos erweist.

2.0 Hosting-Plan im Hinblick auf das Speicherlimit des PrestaShop-Servers

Im direkten Vergleich wird der Unterschied deutlicher:

Was es istWas es einschränktTypischer WertWer ändert es?
PHP-SpeicherlimitEine Seite wird geladen128 MB zu 512 MBSie oder Ihr Host, in einer Konfigurationsdatei
Server-RAMAlles läuft2 GB bis 32 GBIhr Hosting-Plan

Beides ist wichtig, und die Art des Fehlers verrät, welches Problem vorliegt. Wird das PHP-Limit erreicht, funktioniert nur eine Seite nicht mehr, während der Shop weiterhin Kunden bedient. Geht der Arbeitsspeicher aus, verlangsamt sich alles gleichzeitig, inklusive der Datenbank. Eine träge Website deutet auf ein Problem mit dem Arbeitsspeicher oder dem Datenverkehr hin; eine defekte Seite, während der Rest funktioniert, deutet auf diesen Artikel hin.

3.0 Warum der PrestaShop-Shop nicht genügend Speicherplatz hat

Es gibt eine plausible Erklärung dafür, warum PrestaShop an seine Speichergrenzen stößt, und die Aussage „Die Software ist aufgebläht“ ist es nicht. Ein Onlineshop erfordert einige wirklich ressourcenintensive Aufgaben, die auf einer reinen Webseite nicht anfallen. Vier Punkte sind hierbei entscheidend.

  1. Produktdaten sind umfangreicher als es aussiehtJedes Produkt enthält Beschreibungen in allen Sprachen, in denen Sie verkaufen, sowie Preisregeln, Kategorien, Kombinationsmöglichkeiten und Lagerbestände. Für sich genommen ist das nichts. Fordern Sie jedoch beim Export fünftausend Produkte auf einmal an, ändert sich die Berechnungsgrundlage schlagartig.

2. Bilder benötigen Speicherplatz anhand ihrer Abmessungen, nicht anhand ihrer Dateigröße : Das überrascht viele. Ein 3 MB großes Foto mit einer Breite von 6000 Pixeln benötigt etwa 70 MB Speicherplatz, bevor überhaupt eine Größenänderung stattfindet. Die Dateigröße auf der Festplatte sagt kaum etwas über den Verarbeitungsaufwand aus. Deshalb erhalten manche Fotos Miniaturansichten, andere hingegen nicht.

3. Alle Module werden gleichzeitig geladen : Ihre Admin-Seite lädt und initialisiert beim Aufruf alle installierten Module, einschließlich der vierzig, die auf dem Bildschirm nie angezeigt werden. Einzeln betrachtet sind die Kosten gering. Ein etablierter Shop verwendet jedoch sechzig Module, und das ist eine andere Sache.

4. Ihr Backend ist der ressourcenintensive Teil : Mehr Daten auf dem Bildschirm, weniger Verknüpfungen, kein Caching, das einen Shop schnell hält. Ein PHP-Speicherproblem in PrestaShop betrifft daher Sie und Ihre Mitarbeiter, während alle Kunden unbeeinträchtigt weiterarbeiten können – für Ihre zahlenden Kunden bleibt es also unsichtbar.

4.0 Symptome und Fehlermeldungen, die es zu beachten gilt

Gelegentlich erscheint die Meldung auf dem Bildschirm und sieht folgendermaßen aus:

Schwerwiegender Fehler: Der zulässige Speicherplatz von 134217728 Bytes ist erschöpft.
(Versuchte, 20480 Bytes zuzuweisen)

Betrachten Sie die beiden Zahlen separat. Umgerechnet von Bytes entspricht 134217728 128 MB. Der betreffende Shop nutzte also das Standardlimit und hatte den gesamten Speicherplatz belegt. Diese Information ist wichtig, da die Meldung Ihre aktuelle Einstellung angibt.

Die zweite Zahl ist irreführend. Sie ist winzig und erscheint daher als Fehlerursache, ist aber in Wirklichkeit nichts dergleichen: Sie weist lediglich auf den Speicherbedarf des zuletzt angeforderten Prozesses hin, nachdem alle anderen Prozesse belegt waren. Sie ist der Tropfen, der das Fass zum Überlaufen bringt, nicht die eigentliche Ursache. Die meisten Shopbetreiber suchen nach einem Speicherzuweisungsfehler in PrestaShop, indem sie diese Zahl finden – und kommen damit nicht weiter.

5.0 Der PrestaShop-Speicherlimitfehler, den Sie nie zu sehen bekommen

Live-Shops verbergen Fehler vor Besuchern – und das aus gutem Grund. Technische Unstimmigkeiten auf der Webseite wirken unprofessionell und geben Fremden Details über Ihren Server preis. Die Folge: Konfigurieren Sie den Shop korrekt, sehen auch Sie nichts Brauchbares.

Fehler, die Besuchern verborgen bleiben, lassen Ihnen nichts zu lesen.

Anstelle einer Nachricht erhalten Sie eine der folgenden Meldungen:

Eine völlig leere weiße Seite, nichts im Browser.

Eine HTTP-500-Fehlerseite

Eine halbe Seite: Der obere Teil lädt, dann stoppt die Seite mit fehlerhaftem Layout.

Exporte, die sich problemlos herunterladen und öffnen lassen, bei denen aber am Ende Zeilen fehlen.

Produkte, die problemlos hochgeladen werden und nie ein Vorschaubild anzeigen.

Die leere Seite ist der Klassiker und gleichzeitig die am wenigsten hilfreiche: nichts zu lesen, nichts, was man in ein Suchfeld einfügen könnte.

6.0 Sicherstellen, dass es sich tatsächlich um Speicher handelt.

Bestätigen Sie die Diagnose, bevor jemand eine Einstellung ändert. Von außen betrachtet sehen diese beiden Probleme identisch aus, nur eines betrifft den Speicher, und ihre Lösungen haben nichts gemeinsam.

Die Fehlermeldung lautet:Das Problem ist,Die Lösung beinhaltet
Zulässiger Speicherplatz … erschöpftPHP-Speicherlimitmemory_limit wird weiter unten behandelt
Maximale Ausführungszeit … überschrittenEine Zeitbegrenzung, nicht Speicher.max_execution_time

In beiden Fällen bleibt die Seite leer. Bitten Sie Ihren Hosting-Anbieter um das PHP-Fehlerprotokoll zum Zeitpunkt des Fehlers, da dort die eigentliche Fehlermeldung gespeichert wird, wenn nichts angezeigt wird. Eine Anfrage genügt, um viel Rätselraten zu vermeiden.

7.0 So überprüfen Sie das PHP-Speicherlimit in PrestaShop

Das aktuelle PHP-Speicherlimit kann direkt im PrestaShop-Backend überprüft werden und erfordert keinen Serverzugriff.

Gehen Sie zu „Erweiterte Parameter“ und dann zu „Informationen“ . Dort finden Sie Ihre PHP-Einstellungen, darunter auch das Speicherlimit. Das Speicherlimit wirkt sich sowohl auf den Shop als auch auf das Admin-Panel aus. Daher sollten wir diese Einstellung zuerst überprüfen.

Ein Missverständnis sollte unbedingt vermieden werden. Feeds und Importe laufen üblicherweise nachts nach einem Zeitplan und verwenden häufig andere Speichereinstellungen als Ihre Website. Obwohl im Backend ein positiver Wert angezeigt wird, schlägt der Import trotzdem fehl. Derselbe Server, andere Konfiguration. Informieren Sie Ihren Hosting-Anbieter darüber.

8.0 So erhöhen Sie das PHP-Speicherlimit in PrestaShop und beheben Speichermangelfehler

Die Systemanforderungen von PrestaShop verlangen mindestens 256 MB Speicherplatz, und der Installer überprüft dies, bevor er Sie fortfahren lässt.

Es gibt mehrere Möglichkeiten, das PHP-Speicherlimit in den PrestaShop-Einstellungen zu erhöhen. Welche Methode die richtige ist, hängt von der Architektur Ihres Hostings ab und lässt sich nicht durch einfaches Herumklicken in Ihrem Shop feststellen. Fragen Sie am besten nach oder überprüfen Sie die Einstellungen.

8.1 Der einfachste Weg: Fragen Sie Ihren Gastgeber.

Bei Shared Hosting ist das meist schon die ganze Lösung. Viele Control Panels bieten eine PHP-Einstellungsseite, die Sie selbst anpassen können; falls das nicht möglich ist, hilft Ihnen der Support. Formulieren Sie es so:

Könnten Sie memory_limit für meine Website auf 256M erhöhen?
PrestaShop benötigt mindestens 256 MB.

Wenn der Host dies ablehnt, müssen wir uns nach anderen Hosting-Optionen umsehen.

8.2 Wenn Sie oder Ihr Entwickler Serverzugriff haben

Eine kurze Zeile in einer Datei namens php.ini genügt:

memory_limit = 256M

Zwei Dinge laufen hier häufig genug schief, um darauf hinzuweisen. Ein Server speichert mehrere php.ini-Dateien, liest aber nur eine davon. Daher kann eine korrekte Änderung in einer Datei landen, die niemand beachtet. Das zweite Problem ist der Neustart: Bei vielen Konfigurationen werden Änderungen erst nach einem Neustart von PHP wirksam.

8.4 Die .htaccess-Methode und warum sie oft nichts bewirkt

Bei einer Online-Suche wird Ihnen empfohlen, eine Zeile in die .htaccess-Datei, die Konfigurationsdatei im Stammverzeichnis Ihres Shops, einzufügen:

php_value memory_limit 256M

Manchmal funktioniert es. Bei den meisten modernen Hosting-Anbietern passiert gar nichts, und bei manchen gibt die gesamte Website einen 500-Fehler zurück, weil der Server diese Anweisung ablehnt. 

Versuchen Sie dies nur als letzten Ausweg und nur dann, wenn Sie die Änderung problemlos rückgängig machen können.

Eine Besonderheit dieser Plattform ist das Speichern der URL-Einstellungen: PrestaShop überschreibt die .htaccess-Datei, sodass manuell hinzugefügte Zeilen unbemerkt verschwinden können. Überprüfen Sie die Datei daher erneut, nachdem Sie Änderungen an SEO und URLs vorgenommen haben.

9.0 Überprüfung, ob die Änderung tatsächlich funktioniert hat

Verlassen Sie sich dabei auf niemandes Aussage, auch nicht auf Ihre eigene. Die Bestätigung dauert etwa zwei Minuten:

Zurück zu „Erweiterte Einstellungen“, dann zu „Informationen“. Hat sich die Zahl geändert? Immer noch 128 MB bedeutet, dass die Änderung nicht wirksam wurde – mit Abstand das häufigste Ergebnis.

Wiederholen Sie den vorherigen Schritt, der fehlgeschlagen ist. Wenn die Einstellung 256 MB lautet und die Seite weiterhin fehlerhaft ist, wird diese Einstellung durch etwas anderes überschrieben.

Löschen Sie den Speichercache unter Erweiterte Parameter und dann Leistung.

Warten Sie ein paar Tage, bevor Sie das Problem als behoben bezeichnen, denn was auch immer zurückkommt, ist in der Regel das, was zu Ihrem Katalog passt.

Wenn sich eine Zahl nicht ändert, vermuten Sie zunächst, dass die falsche Datei vorliegt, und dann, dass ein Bedienfeld seine eigene Konfiguration überschreibt, sobald Änderungen auf der Festplatte vorgenommen wurden.

9.2 Wann ist die Erhöhung des Grenzwerts die falsche Antwort?

Oft ist das die richtige Antwort, denn 128 MB sind für ein modernes PrestaShop-Backend tatsächlich zu wenig. Erhöhen Sie die Speicherkapazität auf 256 MB, ohne lange zu überlegen.

Ab 512 MB sollten Sie sich eine andere Frage stellen. Meistens belegt dann etwas Speicherplatz proportional zu Ihrem Katalog, sodass jede weitere Erhöhung einige tausend Produkte zusätzlich ermöglicht, bevor der gleiche Fehler erneut auftritt. Eine Stunde Entwicklerarbeit kostet weniger als ein größerer Server pro Jahr.

Die Art und Weise, wie das Problem entstanden ist, kann helfen, die genaue Situation zu bestimmen. Ein Problem, das sich mit dem Wachstum des Katalogs eingeschlichen hat, ist ein Code- oder Datenproblem, das sich fälschlicherweise als Speicherproblem tarnt. Ein Problem, das mit der Integration eines Moduls begann, gehört zu diesem Modul. Und ein Problem, das schon immer bestand, selbst bei einem nur 128 MB großen Shop, ist tatsächlich nur auf die Einstellungen zurückzuführen.

Abschließende Schlussfolgerung – Verhindern Sie, dass es wieder passiert

  • Erreichen Sie 256 MB und bleiben Sie dabei. Das ist das dokumentierte Minimum, kein Luxus.
  • Verkleinern Sie große Fotos, bevor Sie sie hochladen: Speicherplatz wird pro Pixel benötigt, und 2000 Pixel Breite passen den meisten Shops.
  • Deaktiviert ist nicht dasselbe wie entfernt. Deinstallieren Sie daher alles, was Sie nicht mehr verwenden.
  • Planen Sie größere Importe außerhalb Ihrer Hauptgeschäftszeiten ein.
  • Testen Sie einen großen Importartikel an einem Testexemplar, niemals an einem laufenden Verkaufsstück im Geschäft.
  • Weisen Sie Ihren Entwickler an, nach einem fehlgeschlagenen Massenvorgang das Fehlerprotokoll zu lesen, anstatt anzunehmen, dass es funktioniert hat.
  • Der letzte Punkt hat seine Berechtigung. Ein halbfertiger Massenvorgang ist schlimmer als ein komplett fehlgeschlagener, denn man hat keine Ahnung, welche Hälfte durchgelaufen ist, und das Lesen des Protokolls dauert eine Minute.

Dies war der vollständige Leitfaden zur Identifizierung von PHP-Speicherlimitproblemen in PrestaShop. Wir von Knowband sind spezialisiert auf E-Commerce-Plugins, Website-Anpassung und App-Entwicklung, damit Ihr Shop optimale Leistung erbringt. Benötigen Sie Unterstützung von Experten? Kontaktieren Sie uns unter [email protected] oder den Knowband-Helpdesk – wir helfen Ihnen gerne weiter.

Schreiben Sie bitte einen Kommentar.