Ich baue eine Website für einen Fotografen, der Bilder hochlädt, die für heutige Digitalkameras normalerweise groß sind. Bilder sind sehr speicherintensiv, insbesondere die Bildoperationen wie das Erstellen von Miniaturansichten.
Also wollte ich das Speicherlimit im Admin auf über 256 MB erhöhen - wie geht das? Ich habe CGI und PHP erlaubt, bis zu 1 Gigabyte zu verwenden, aber WordPress reduziert den Speicher immer auf 256 MB. Haben Sie eine Idee, wie Sie dies auf einer Clientseite beheben können, die automatisch aktualisiert werden muss?
UPDATE: Ab Wordpress 3.2 kann das maximale Speicherlimit in Wordpress wieder konfiguriert werden .
customization
admin
memory
hakre
quelle
quelle
Antworten:
Theoretisch bearbeiten Sie Ihre config.php und fügen diese Zeile hinzu, bevor Sie wp-settings.php einfügen .
sollte Ihr Speicherlimit für WordPress auf 256 MB oder einen von Ihnen festgelegten Wert erhöhen. Und das wird überall funktionieren. Wie sorich87 hervorhob , gibt es jedoch nur wenige Funktionen, die diese Einstellung mit einem fest codierten 256-MB-Limit ändern.
Hacken oder nicht hacken
Ein wenig Besorgnis darüber
WP_MEMORY_LIMIT
ist eine der seltsamsten WP-Einstellungen, die mir begegnet sind. Wenn Sie überprüfen/wp-includes/default-constants.php
, finden Sie diese Einstellung:Ich weiß nie, dass WP die Standardspeicherauslastung so niedrig einstellen wird, bis ich dies im WP-Codex finde:
Diese Erklärung war erleichtert. Die Verwendung von fest codierten
@ini_set('memory_limit', '256M');
WP-Ausführungsfunktionen, die mehr Speicher benötigen, wird jedoch nie erwähnt . Tatsächlich finde ich im WP-Codex keine Erklärung für dieses vage Verhalten. Da die meisten nicht benutzerbezogenen Funktionen entweder nicht dokumentiert oder im Codex nicht klar erklärt sind.Während diese Einstellung in den meisten Fällen gut funktioniert, werden diese Funktionen auf Servern mit niedrigerer maximaler Speichereinstellung oder in Ihrem Fall mit höherer Speichernutzung unbrauchbar.
Bis WP-Leute das beheben, denke ich, besteht Ihre einzige Lösung darin, den Kern zu modifizieren. Vielleicht finden Sie diesen Beitrag von hakre interessant zu lesen. Er gibt auch eine Patch-Empfehlung in Trac ab. Der vorherige Link zur Patch-Datei kann Ihnen helfen, eine Liste der Funktionen zu finden, die diese Einstellung verwenden.
bearbeiten:
Dies ist die dümmste Antwort, die ich je gegeben habe, weil ich einen Link zu Ihrem eigenen Beitrag gebe (stellen Sie nur fest, dass der OP-Name nach 2 Tagen hakre war): D.
bearbeiten 2:
Wie im Kommentar erwähnt, wurde dies durch die Version 3.2 behoben
quelle
Es gibt,
@ini_set('memory_limit', '256M');
bevor Bilder von GD-Funktionen in den Speicher geladen werden.imagecreatefromstring()
(Zeile 253, wp-includes / media.php) wird verwendet, vonwp_load_image()
der verwendet wirdimage_resize
(die Funktion, bei der die Bildverarbeitung für die Erstellung von Miniaturansichten erfolgt). Das Speicherlimit befindet sich in Zeile 252, daher gibt es, soweit ich sehen kann, keine Möglichkeit, es zu ändern, ohne ein Kätzchen zu töten *> :).Es gibt auch GD-Funktionen in
load_image_to_edit()
(Zeile 200, wp-admin / includes / image-edit.php). Dieser wird vom Bildeditor verwendet (ich habe ihn nie benutzt, da ich WordPress kenne, wusste nicht einmal, wo ich ihn finden sollte :)). Wenn Ihr Client es verwendet, möchten Sie möglicherweise auch dort das Speicherlimit festlegen. Da ist der Filterload_image_to_edit_path
.Hoffe meine Antwort ist hilfreich.
* Hacking Core
quelle
WP_MEMORY_LIMIT
Konstante und sogar einenadmin_memory_limit
Filter, aber in diesen wenigen Fällen wird keiner konsultiert.Swill - ich hatte genau die gleichen Probleme. Verdammtes WordPress mit einigen der "Features" Ein etwas ausgefeilterer Ansatz besteht darin, alle @ini_set zu ändern, um es von WP_MEMORY_LIMIT zu setzen - Problem gelöst
Auch das Ändern von PHP-Werten zur Laufzeit ist nicht so klug, nicht sicher, warum es implementiert wird :(
quelle
Nach Ihrer Beschreibung denke ich, dass dieser Code
admin.php
das Problem ist:Etwas seltsam, dass die Speicherauslastung des Administrators separat behandelt wird, aber zumindest filterbar ist.
quelle
Ich wollte mich nur bei Bangbambang bedanken. Dies ist der erste Beitrag, den ich gefunden habe und der mir einen Einblick geben konnte, warum der Eintrag in wp-config.php von
define('WP_MEMORY_LIMIT', '512M');
nicht tatsächlich verwendet wurde. Ich habe Stunden damit verbracht, das herauszufinden ...Mein Import schlug mit dem erschöpften 256M-Problem fehl, unabhängig davon, wie ich das Speicherlimit festgelegt habe.
Hier sind die Stellen, an denen das Speicherlimit auf 256 MB fest codiert ist (in Version 3.0.5 sowieso).
quelle
WP_MAX_MEMORY_LIMIT
.quelle