Ricevo un errore di memoria in un lavoro cron php:
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 71 bytes) in /opt/matrix/core/lib/DAL/DAL.inc on line 830
Le parti applicabili del crontab sono:
$ sudo crontab -u www-data -l
MAILTO=root
# m h dom mon dow command
*/15 * * * * php /opt/matrix/core/cron/run.php /opt/matrix
Sto correndo su Debian Squeeze, completamente aggiornato.
La soluzione ovvia sarebbe che il cli ha un limite di memoria basso (di 64 MB). Tuttavia, /etc/php5/cli/php.ini dice che è illimitato.
$ cat /etc/php5/cli/php.ini | grep memory_limit
memory_limit = -1
Ho letto da qualche parte che potrebbe essere diverso per diversi utenti e poiché il processo è in esecuzione come www-data, ho eseguito:
$ sudo -u www-data -s
$ php -i | grep memory_limit
memory_limit => -1 => -1
suhosin.memory_limit => 0 => 0
Anche l'apache / php.ini ha un limite superiore a quello che l'errore sostiene:
$ sudo cat /etc/php5/apache2/php.ini | grep memory_limit
memory_limit = 128M
Cosa mi sto perdendo? Dov'è questo limite di memoria?