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 字节)