Frage

ich habe ein Problem mehr Speicher aus PHP zu bekommen.

Dies ist die Fehlermeldung:

Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 82 bytes) in ...

Und doch:

Ich habe gesetzt memory_limit in der php.ini-Datei 32M:

memory_limit = 32M;

Ich habe auch versucht, es manuell im eigentlichen Skript außer Kraft zu setzen:

ini_set('memory_limit', '32M');

Und - hier, wo ich bin verloren - ich über phpinfo bestätigt haben (), dass diese Datei php.ini verwendet die aktuelle INI-Datei ist, und die memory_limit scheint richtig eingestellt werden. Die Linie auf memory_limit ergibt dies:

memory_limit    32M 32M

So wäre es, dass alles scheint richtig konfiguriert ist, aber ich bin immer nur 20971520 Bytes (~ 20M).

Wo sollte ich sonst noch, um herauszufinden, werden, wo diese Beschränkung auferlegt wird?

EDIT: Ich bin PHP unter nginx / FastCGI, auf Ubuntu 9.04 in einem VPS läuft. Die php-cgi Prozesse scheinen ein wenig ressourcenhungrige (RES = 25m, VIRT = 187m) zu sein, aber ich habe 10m physischen Speicher frei und 500 m von Swap-Speicher frei.

War es hilfreich?

Lösung 2

Ich brütete gerade über den Code, den ich lief, und jemand diese in einer Config-Datei hartcodiert hatte:

ini_set('memory_limit', '20M');

Welche zwingenden war alles, was ich tat. Puh.

Andere Tipps

Mein erster Instinkt ist, zu erraten, dass PHP eine andere php.ini liest.

In Debian (und höchstwahrscheinlich Ubuntu), jede Version von PHP (cli, cgi, und Apache) hat seine eigene Kopie der php.ini.

Sie könnten versuchen, es in der .htaccess-Datei einstellen, das ist, was ich eine Website zum Laufen zu bringen auf einem Server zu tun hatte.

Hier sind die Einstellungen, die ich verwendet:

php_value  upload_max_filesize  50M
php_value  post_max_size  60M
php_value  memory_limit  128M
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top