Vra

Ek het 'n probleem om meer geheue uit PHP.

Dit is die fout boodskap:

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

Tog:

Ek het memory_limit stel in die php.ini lêer om 32m:

memory_limit = 32M;

Ek het ook probeer om dit met die hand te ignoreer in die werklike script:

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

En - hier is waar ek is verlore - ek via phpinfo () dat hierdie php.ini lêer is die werklike ini lêer gebruik, en die memory_limit lyk korrek ingestel het bevestig. Die lyn op memory_limit gee hierdie:

memory_limit    32M 32M

Dit wil voorkom dat alles behoorlik opgestel is nie, maar ek is net om 20971520 bytes (~ 20M).

Waar anders moet ek kyk om uit te vind waar hierdie beperking word opgelê?

Edit: Ek hardloop PHP onder nginx / fastcgi, op Ubuntu 9,04 in 'n VPS. Die PHP-cgi prosesse nie blyk te wees 'n bietjie hulpbron-honger (RES = 25m, Virt = 187m), maar ek het 10m van fisiese geheue vry en 500m van ruilruimte gratis.

Was dit nuttig?

Oplossing 2

Ek het net pored oor die kode wat ek geloop het en iemand het hard-gekodeerde hierdie in 'n config lêer:

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

Watter is alles anders wat ek besig was oorheersende. Sjoe.

Ander wenke

My eerste instink is om te raai dat PHP lees 'n ander php.ini.

In Debian (en waarskynlik Ubuntu), elke weergawe van PHP (cli, cgi, en apache) het sy eie afskrif van php.ini.

Jy kan probeer dit in die htaccess lêer, dit is wat ek moes doen om 'n webwerf werk op een bediener te kry.

hier is die instellings wat ek gebruik:

php_value  upload_max_filesize  50M
php_value  post_max_size  60M
php_value  memory_limit  128M
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top