Schwerwiegender Fehler: Nicht genügend Speicher beim Hinzufügen eines Beitrags in WP

Lesezeit: 6 Minuten

Ich erhalte diesen bösen Fehler Fatal error: Out of memory (allocated 18087936) (tried to allocate 77824 bytes). Seltsamerweise sind es 17,25 MB (zugewiesen) und es wurde versucht, 76 KB zuzuweisen. Das Speicherlimit beträgt 128 MB, und wie Sie sehen können, ist es nicht einmal annähernd so groß. VPS hat in diesem Moment ungefähr 400 MB freien RAM. Es passiert nur, wenn ich etwas poste und nicht immer. Ich finde es komisch und weiß nicht genau woran es liegen kann. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

  • Steht dort, in welcher Datei es passiert?

    – Romanberger

    16. April 2013 um 14:45 Uhr

  • Registrieren Sie die Shutdown-Funktion (z. B. so). Fügen Sie etwas Code hinzu, um den Maschinenzustand zu protokollieren (aktueller Speicherverbrauch, verfügbarer Speicher usw.). Analysieren Sie die Protokolle, höchstwahrscheinlich ist der verfügbare Speicher im Moment des Fehlers sehr knapp.

    – J0HN

    16. April 2013 um 14:48 Uhr

  • Welche WP-Module verwenden Sie und können Sie irgendein Muster in Bezug auf die Dateien erkennen, in denen dies geschieht? Vielleicht gehören sie alle zu einem Modul oder beziehen sich alle auf eine Aufgabe?

    – Quinn Strahl

    16. April 2013 um 14:50 Uhr


  • können Sie ini_set(‘memory_limit’, ‘128M’) hinzufügen; inline in Ihren Code und prüfen Sie, ob sich dies auf die Fehlermeldung auswirkt. phpinfo() und ini_get(‘memory_limit’) melden manchmal Dinge, die nicht der Realität entsprechen. Sie könnten es auch mit einem niedrigeren Wert versuchen, sagen Sie ini_set(‘memory_limit’, ’30M’);, und berichten Sie Ihre Ergebnisse.

    – eis

    16. April 2013 um 14:50 Uhr


  • Romanberger, immer verschiedene Dateien. von WordPress (wie post.php) zu Dateien aus verschiedenen Modulen. Quinn Strahlich habe bisher kein Muster bemerkt, außer dass es nur passiert, wenn ich neue Beiträge hinzufüge (nicht immer). J0HNich werde versuchen

    – Igor Jawytsch

    16. April 2013 um 20:12 Uhr

Der Fehler besagt, dass das Speicherlimit 18 MB und nicht 128 MB beträgt. Das bedeutet, dass das memory_limit irgendwo auf etwas anderes als 128 MB eingestellt ist (lokale php.ini oder die Anwendung selbst, da PHP diese Einstellung zur Laufzeit überschreiben kann).

Ich würde vorschlagen, dass Sie zuerst eine Datei namens (sagen wir) phpinfo.php mit folgendem Inhalt erstellen:

<?php
phpinfo();
?>

und platzieren Sie es dort, wo Ihr Skript ausgeführt wird. Greifen Sie dann mit Ihrem Browser auf die Datei zu und suchen Sie nach dem tatsächlichen Wert von memory_limit. Wenn es immer noch 128M sowohl für den “globalen” als auch für den “lokalen” Wert anzeigt, dann gibt es wahrscheinlich irgendwo in Ihrem Code ein “ini_set(“memory_limit”, $value);” anrufen oder ähnliches. Andernfalls, wenn 18M angezeigt wird, suchen Sie nach anderen Stellen, an denen dies eingestellt werden kann:

  • Überprüfe deine wp-config.php-Datei
  • Suchen Sie nach einer lokalen php.ini-Datei (sehen Sie auf der phpinfo.php-Seite nach, um den Speicherort der tatsächlich geladenen php.ini-Datei zu sehen)
  • Suchen Sie nach .htaccess-Dateien, die eine solche Direktive enthalten

  • Es wird ein Speicherlimit von 128 MB angezeigt. Ich habe meinen wp-Installationsordner auf der Suche nach einer Änderung des Speicherlimits über ini_set durchsucht. Ich fand keine, die es wirklich ändern könnte.

    – Igor Jawytsch

    14. April 2013 um 14:08 Uhr


  • kannst du ein setzen echo ini_get('memory_limit'); in dem Skript, das den Fehler verursacht? (je näher an der Fehlerlinie, desto besser)

    – Periklis

    14. April 2013 um 14:35 Uhr

  • immer andere Datei und andere Zeile

    – Igor Jawytsch

    14. April 2013 um 15:05 Uhr

  • Wenn Sie es jedoch in eine Datei einfügen, die irgendwann einen Fehler erzeugt hat, was sagt es aus?

    – Periklis

    14. April 2013 um 18:04 Uhr

  • Ist das ein gemeinsam genutzter Host oder ein dedizierter Server? Sind Sie sicher, dass zum Zeitpunkt des Fehlers tatsächlich so viele MB freier Speicher vorhanden sind?. Obwohl ich sicher bin, dass Sie es bereits überprüft haben, werfen Sie einen Blick auf wordpress.org/support/topic/…

    – Periklis

    14. April 2013 um 19:04 Uhr

Hoffe das hilft, da ich das gleiche Problem hatte:

Sie stoßen auf eine Einschränkung in Das eigene Speicherlimit von WordPress, nicht Ihr PHP-memory_limit. WordPress hat dieses Limit implementiert, um Verhindern Sie, dass schlecht geschriebene Skripte Ihren gesamten PHP-Interpreter herunterfahren. Leider, wie Sie bemerkt haben, ist es eher Barebones.

Der einfachste Weg, den ich gefunden habe, um dies zu beheben, ist die Installation der Speicherlimit ändern Plugin aus dem WordPress-Plugin-Repository. Sie können das Problem beheben, ohne WP-Dateien manuell zu ändern.

Die 64M-Standardeinstellung für das Plugin wird wahrscheinlich für Sie in Ordnung sein.

Wenn Sie einem Plugin eines Drittanbieters nicht vertrauen möchten, fügen Sie alternativ die folgende Zeile hinzu wp-config.php:

define('WP_MEMORY_LIMIT', '64M');

  • Ich denke, ich werde es versuchen und sehen, ob es etwas bringt

    – Igor Jawytsch

    22. April 2013 um 11:23 Uhr

  • Es hat nicht geholfen. Immer noch nicht genügend Speicher mit zugewiesenen 18 MB

    – Igor Jawytsch

    23. April 2013 um 7:40 Uhr

  • Defines können von einer Opcode-Caching-Erweiterung wie APC zwischengespeichert werden. Es wäre hilfreich, wenn Sie den Wert von WP_MEMORY_LIMIT tatsächlich echoen würden, um sicherzustellen, dass sein Wert der ist, auf den Sie ihn eingestellt haben (z. B. in der zuvor geposteten register_shutdown_function).

    – Periklis

    23. April 2013 um 9:49 Uhr


  • Versuchen Sie es mit Echo WP_MEMORY_LIMIT aus irgendeinem Skript.

    – Glitch-Wunsch

    24. April 2013 um 14:05 Uhr

Habe es davon http://wordpress.org/support/topic/fatal-error-out-of-memory-messages?replies=24#post-1929111dachte, ich teile es mit euch:

DIES MUSS IN DIE WP-KONFIGURATIONSDATEI EINGEGEBEN WERDEN, DIE SICH IM ROOT DES WORDPRESS-SETUPS BEFINDEN: ENTER AFTER: 
define('ABSPATH', dirname(__FILE__)."https://stackoverflow.com/");
FOLGENDE:

define('WP_MEMORY_LIMIT', '64M');

ERSTELLEN SIE AUCH EINE PHP.INI, DIE IN DEN PLUGIN-ORDNER IN WP-CONTENT HOCHGELADEN WERDEN SOLLTE:

 `memory_limit = 128M; //Maximum amount of memory a script may consume (64MB)
`

max_execution_time = 45;


upload_max_filesize = 15M;


post_max_size = 30M;

Hoffe das hilft!

Nur eine Option, die mir beim Debuggen dieser Fehler geholfen hat.

Wenn Sie Zugriff auf die .htaccess haben, können Sie Folgendes versuchen:

php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value max_execution_time 300
php_value max_input_time 300

Wenn das nicht hilft, können Sie versuchen, die Einstellungen zu überprüfen:

echo 'Max upload size: ' . ini_get('upload_max_filesize') . '<br />';
echo 'Max post size: ' . ini_get('post_max_size') . '<br />';
echo 'Memory limit: ' . ini_get('memory_limit');

Ich hoffe, das funktioniert, bei mir hat es funktioniert.

Ich bin mir nicht sicher, ob dies den Fehler verursacht, aber es lohnt sich, darauf zu achten.

Viele der unauffindbarsten erbärmlichen Speicherfehler werden verursacht durch:

1) Benutzerdefinierte Ausnahmehandler, die Ausnahmen verursachen, die daher wiederkehren.

2) Der obige + Versuch, Klasseninformationen des Objekts abzurufen, das die Ausnahme verursacht, und das Testen der Klasseninformationen verursacht einen Autoload-Versuch, bei dem Autoload eine weitere Ausnahme auslöst und daher rekursiv ist.

Haben Sie etwas getan, das mit der WP-Fehlerbehandlung oder dem automatischen Laden in Konflikt steht?

Benutzeravatar von TECH N
TECHN

Ich installiere wp-speichernutzung Plugin von alexrabe auf allen meinen WordPress-Seiten.

Dieses Plugin hilft Ihnen zu sehen, was WordPress in Bezug auf Ihre PHP-Speichernutzung sieht. Andere Ansätze zeigen Ihnen möglicherweise die PHP-Einstellungen auf dem Server, diese Einstellungen werden jedoch oft mit verschiedenen Techniken außer Kraft gesetzt, je näher Sie einer gerenderten Seite im Browser kommen.

Um Ihren maximalen Speicher festzulegen -> öffnen Sie Ihren bevorzugten Texteditor und erstellen Sie eine Datei namens php.ini; Fügen Sie in die Datei die folgende Zeile ein:

memory_limit = 256M

Platzieren Sie eine Kopie der php.ini in Ihrem WordPress-Stammverzeichnis. Ich platziere auch Kopien in: /wp-admin; /wp-Inhalt; und /wp-enthält.

Benutzeravatar von aakash
aakasch

Hinzufügen define('WP_MEMORY_LIMIT', '256M'); in deiner wp-config.php-Datei. Es ist der einfachste Weg.

  • kommt mir dumm vor. Welchen Sinn hat es, das Memlimit zu erhöhen, wenn es nicht einmal in der Nähe des aktuellen ist?

    – Igor Jawytsch

    20. April 2013 um 14:28 Uhr

1394180cookie-checkSchwerwiegender Fehler: Nicht genügend Speicher beim Hinzufügen eines Beitrags in WP

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy