J'obtiens une erreur de mémoire dans une tâche php cron :
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
Les parties applicables de la crontab sont :
$ sudo crontab -u www-data -l
MAILTO=root
# m h dom mon dow command
*/15 * * * * php /opt/matrix/core/cron/run.php /opt/matrix
Je fonctionne sous Debian Squeeze, entièrement mis à jour.
La solution évidente serait que le client ait une faible limite de mémoire (64 Mo). Cependant, le fichier /etc/php5/cli/php.ini indique qu'elle est illimitée.
$ cat /etc/php5/cli/php.ini | grep memory_limit
memory_limit = -1
J'ai lu quelque part que cela pouvait être différent pour différents utilisateurs, et puisque le processus est exécuté en tant que www-data, je l'ai exécuté :
$ sudo -u www-data -s
$ php -i | grep memory_limit
memory_limit => -1 => -1
suhosin.memory_limit => 0 => 0
Même le fichier apache/php.ini a une limite plus élevée que celle réclamée par l'erreur :
$ sudo cat /etc/php5/apache2/php.ini | grep memory_limit
memory_limit = 128M
Qu'est-ce que je rate ? Où se trouve cette limite de mémoire ?