Tôi đang gặp lỗi bộ nhớ trong công việc 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
Các phần áp dụng của crontab là:
$ sudo crontab -u www-data -l
MAILTO=root
# m h dom mon dow command
*/15 * * * * php /opt/matrix/core/cron/run.php /opt/matrix
Tôi đang chạy trên Debian Squeeze, được cập nhật đầy đủ.
Giải pháp rõ ràng là cli có giới hạn bộ nhớ thấp (64MB). Tuy nhiên, /etc/php5/cli/php.ini nói rằng nó không giới hạn.
$ cat /etc/php5/cli/php.ini | grep memory_limit
memory_limit = -1
Tôi đã đọc ở đâu đó rằng nó có thể khác nhau đối với những người dùng khác nhau và vì quá trình này đang chạy dưới dạng dữ liệu www, tôi đã chạy:
$ sudo -u www-data -s
$ php -i | grep memory_limit
memory_limit => -1 => -1
suhosin.memory_limit => 0 => 0
Ngay cả apache / php.ini cũng có giới hạn cao hơn lỗi yêu cầu:
$ sudo cat /etc/php5/apache2/php.ini | grep memory_limit
memory_limit = 128M
Tôi đang thiếu gì? Giới hạn bộ nhớ này ở đâu?