PHP: Memory Limit erhöhen
Wer schon mal solch eine Fehlermeldung bekommen hat und gern wissen möchte wie man das Problem behebt, sollte sich diesen Beitrag genau durchlesen.
Die Fehlermeldung bedeutend dass PHP versucht mehr Arbeitsspeicher zu benutzten als es laut Konfiguration darf. Ich stelle im folgenden Artikel 3 Wege vor wie man dieses Limit erhöhen kann.
1. Mit der php.ini
Diese Datei ist die Hauptkonfigurationsdatei von PHP, sie liegt meist in /etc/php/php.ini, /etc/php4/php.ini, /etc/php4/php.ini und/oder auch /etc/php/apache2/php.ini
Um diese Datei zu ändern braucht man root Rechte, wenn Sie die nicht haben oder bekommen können Sie diese Methode gleich abschreiben.
Standardmäßig sollte drin stehen:
Um jetzt einen neuen Wert anzugeben ändern wir diesen Wert einfach wie gewünscht ab:
memory_limit = 32M
und nach einem Webserver neustart sollte der neue Wert übernommen werden:
Achtung!
Diese Methode ändert das Memory_Limit Global, also für jeden PHP-Prozess vom geänderten Typ (cli, cgi, mod_php) auf dem System. Wenn das nicht gewünscht ist ist eine der folgenden Methoden wohl besser geeignet.
2. Mit einer .htaccess / direkt im VHost
Das Limit lässt sich bei Verwendung des Apache2 Webserver direkt im Vhost oder der .htaccess für jedes Verzeichnis einzeln ändern.
Dazu ist folgende Anweisung nötig:
Hinweis:
Es kann sein dass Ihr Hoster diese Anweisung deaktiviert hat, in dem Fall fragen Sie diesen um eine Änderung.
3. Direkt mit PHP
Wenn die PHP-Funktion ini_set() nicht deaktiviert wurde, können Sie auch direkt im betreffenden PHP-Script den Wert ändern. Dies geht wie folgt:
Änderungen werden sofort übernommen.
Diese Methode bietet die beste Kontrolle über den Resourcenverbrauch von PHP und ist daher zu empfehlen.
Hinweis:
damit das Memory-Limit von PHP funktioniert muss PHP mit --enable-memory-limit compiliert worden sein, was aber bei allen gängigen Paketformaten der Fall sein sollte.
[...] man das PHP Memory Limit erhöhen. Welche Möglichkeiten funktionieren, ist abhängig vom Provider, hier klick zum nachlesen. In meinem Fall klappt die 2. Möglichkeit über die .htaccess. Sie sollte mit folgendem erweitert [...]
Vielen Dank für das Tutorial! Beim Provider Netbuild funktioniert nur die Variante php ini_set(), man kann aber den Support bitten, das Limit in der php.ini hochzudrehen.
[...] liegt. Wie man diesen Wert evtl. abändern kann, hat Julius Beckmann in seinem Beitrag “PHP: Memory Limit erhöhen” [...]
[...] Memory Limit” bekommt. Auch hier gibt es eine Lösung, schaut Euch das einfach mal bei Julius Beckmann [...]
Herzlichen Dank für dieses leicht verständliche Tut. So konnte ich nun endlich mein Problem lokalisieren und beheben. Funktioniert wunderbar.
[...] memory_limit erhöhen: entweder in der php.ini oder direkt in PHP mit dem [...]
[...] memory limit of 32MB which can be to less if you run the automatic updates. As discussed here and here there are different ways to change the configuration. Though, for us it only works when we change [...]
No matter, what I set the limit to even -w, I get a message:
Fatal error: Out of memory (allocated 6029312) (tried to allocate 1109318761 bytes) in H:\ApacheFlix\htdocs\CreateZipFile.inc.php on line 222
meant even: -1
You also need to reaload the server. Or maybe you are not allowed to use ini_set();
[...] [...]
Hi, ich hatte keine Befugnisse, die Rechte der .htaccess zu ändern - durfte somit auch nicht reinschreiben - habe Trick angewand : die Datei runtergeladen (anzeigen versteckter Dateien nötig) und dort umgeschrieben mit
php_value memory_limit 128M
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
und dann die alte .htaccess auf dem Server im wp-blog umbenannt und die neue hochgeladen ...
Man muß sich nur zu helfen wissen.
Aber leider zeigte mir das auch keine Thumbnails und so mußte der Provider den Memory-limit hochsetzen (war schon 64 MB - da ich aber viel mit mache, jetzt 128 MB), damit NextGen-Gallery die Thumbnails zeigte.
LG Bine
[...] man vollen Zugriff auf dem Server hat kann man das Memory Limit in der php.ini verändern. Speziell bei Shared Webspace oder Managed Servern hat man allerdings meistens keinen Zugriff auf [...]
Bei meinem Hoster Webspace4All muss man nach dem Kundenlogin
den Apachen über Menüs und Formulare administrieren. Nur so lässt sich das PHP Memory Limit erhöhen: http://www.arno-heider.de/?p=941