Bir php cron işinde bir bellek hatası alıyorum:
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
Crontab'ın uygulanabilir kısımları:
$ sudo crontab -u www-data -l
MAILTO=root
# m h dom mon dow command
*/15 * * * * php /opt/matrix/core/cron/run.php /opt/matrix
Ben tam olarak güncellenen Debian Squeeze üzerinde çalışıyorum.
Açık bir çözüm, cli'nin düşük bir hafıza sınırına (64 MB) sahip olması olacaktı. Ancak /etc/php5/cli/php.ini bunun sınırsız olduğunu söylüyor.
$ cat /etc/php5/cli/php.ini | grep memory_limit
memory_limit = -1
Farklı kullanıcılar için farklı olabileceği bir yerde okudum ve işlem www-data olarak çalıştığından, şunu koştum:
$ sudo -u www-data -s
$ php -i | grep memory_limit
memory_limit => -1 => -1
suhosin.memory_limit => 0 => 0
Apache / php.ini bile hata iddiasında olduğundan daha yüksek bir sınıra sahiptir:
$ sudo cat /etc/php5/apache2/php.ini | grep memory_limit
memory_limit = 128M
Neyi kaçırıyorum? Bu hafıza limiti nerede?