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

12

嗨,我有一个运行在 CakePHP v 1.3 上的应用程序。我将我的 wamp 服务器更新到了 v2.4。在更新后,我收到了这个错误消息。我已经按照以下方式更改了我的 php.ini 设置:


  • memory_limit = 128M
  • file_uploads = ON
  • 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

我错过了什么?欢迎提出建议!

4个回答

10

你可以在控制器操作中使用 来增加内存限制。

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

你也可以增加超时限制。

set_time_limit(0); Infinite

为了使所有控制器都能够启用此功能,您可以将init_set放置在AppController中-> public function initialize() { ini_set('memory_limit', '256M'); ...} - Ng Sek Long

6

增加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

您可以使用CakePHP的containable行为来优化查询数据。最好的做法是优化您的代码/数据,而不是增加内存大小。
谢谢。

2
Try...
Allowed memory size 
ini_set('memory_limit', '-1');

7
请阐述为什么这可能会解决问题。 - theMayer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接