CakePHP:致命错误:允许的内存大小为 536870912 字节已用尽(尝试分配 52 字节)

Posted

技术标签:

【中文标题】CakePHP:致命错误:允许的内存大小为 536870912 字节已用尽(尝试分配 52 字节)【英文标题】:CakePHP : Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 52 bytes) 【发布时间】:2014-01-06 04:35:37 【问题描述】:

您好,我有一个在 Cakephp v 1.3 上运行的应用程序。我已将我的wamp 服务器更新为v2.4。更新后我收到此错误消息。我对我的 php.ini 设置进行了这些更改。


memory_limit = 128M file_uploads = 开启 upload_max_filesize = 128M max_input_time max_execution_time = 300 post_max_size = 128M realpath_cache_size = 16k realpath_cache_ttl = 120

但我仍然收到这些错误消息:

CakePHP : Fatal error: Allowed memory size of 536870912 bytes exhausted 
(tried to allocate 52 bytes) in C:\wamp\www\gtgcrm\cake\libs\model\
datasources\dbo\dbo_mysql.php on line 775

我错过了什么?任何建议将不胜感激!

【问题讨论】:

【参考方案1】:

您可以通过在控制器操作中使用来增加内存限制

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

你也可以增加超时限制

set_time_limit(0); Infinite

【讨论】:

要为所有控制器启用此功能,您可以将 init_set 放入 AppController -> public function initialize() ini_set('memory_limit', '256M'); ...【参考方案2】:

php.ini 中增加内存限制,这根本不是合适的解决方案。

这种情况也可能发生在代码中,例如无限循环、进程 大量数据,甚至数据库查询你应该检查代码, 可能存在无限循环或此类情况。

【讨论】:

【参考方案3】:

错误很明显,这是由于在您的 ini 文件或 .htaccess 中设置超出了内存限制。您也可以按照 Anubhay 所写的方式通过 php 进行设置。以下变量是您关心的问题

php_value post_max_size 1000M
php_value upload_max_filesize 2500M
php_value max_execution_time 6000000
php_value max_input_time 6000000
php_value memory_limit 2500M

您可以通过使用可包含的蛋糕行为来优化查询数据。优化代码/数据而不是增加内存大小是更好的做法。

谢谢

【讨论】:

【参考方案4】:
Try...
Allowed memory size 
ini_set('memory_limit', '-1');

【讨论】:

请详细说明为什么这可以解决问题。

以上是关于CakePHP:致命错误:允许的内存大小为 536870912 字节已用尽(尝试分配 52 字节)的主要内容,如果未能解决你的问题,请参考以下文章

PHP致命错误:允许的内存大小为134217728字节已用尽

致命错误:允许的内存大小为 [重复]

致命错误:允许的内存大小为 1610612736 字节用尽 laravel 护照

致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 71 字节)

致命错误:PHPExcel 中已用尽的允许内存大小为 134217728 字节

使用 pear :致命错误:允许的内存大小为 134217728 字节已用尽(尝试分配 6144 字节)