Domanda

Ho problemi a estrarre più memoria da PHP.

Questo è il messaggio di errore:

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

Ancora:

Ho impostato memory_limit nel file php.ini su 32M:

memory_limit = 32M;

Ho anche provato a sovrascriverlo manualmente nello script effettivo:

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

E - ecco dove mi sono perso - ho confermato tramite phpinfo () che questo file php.ini è l'effettivo file ini utilizzato e che memory_limit sembra essere impostato correttamente. La riga su memory_limit dà questo:

memory_limit    32M 32M

Quindi sembrerebbe che tutto sia configurato correttamente, ma sto ricevendo solo 20971520 byte (~ 20M).

Dove altro dovrei cercare di capire dove viene imposta questa limitazione?

EDIT: sto eseguendo php con nginx / fastcgi, su Ubuntu 9.04 in un VPS. I processi php-cgi sembrano essere un po 'affamati di risorse (RES = 25m, VIRT = 187m), ma ho 10m di memoria fisica libera e 500m di spazio di swap.

È stato utile?

Soluzione 2

Ho appena esaminato il codice che stavo eseguendo e qualcuno lo aveva codificato in un file di configurazione:

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

Che stava scavalcando tutto ciò che stavo facendo. Accidenti.

Altri suggerimenti

Il mio primo istinto è indovinare che PHP sta leggendo un php.ini diverso.

In Debian (e molto probabilmente Ubuntu), ogni versione di PHP (cli, cgi e apache) ha la sua copia di php.ini.

Potresti provare a impostarlo nel file .htaccess, questo è quello che dovevo fare per far funzionare un sito su un server.

ecco le impostazioni che ho usato:

php_value  upload_max_filesize  50M
php_value  post_max_size  60M
php_value  memory_limit  128M
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top