我正在使用CakePHP 2.3 我在访问CakePHP网站时遇到此错误:
PHP致命错误:在第246行的C:\ inetpub \ wwwroot \ mysite \ lib \ Cake \ Event \ CakeEventManager.php中,允许的内存大小为134217728个字节(试图分配4386075个字节)
它似乎不是一个循环,看起来像是与会话相关的东西,因为它在尝试用$this->Session->read('Auth.User.isAdmin')
读取会话变量后失败了。
在此之前,我可以毫无问题地打印和die()
。
PHP致命错误:第246行的C:\ inetpub \ wwwroot \ tlm \ lib \ Cake \ Event \ CakeEventManager.php中允许的内存大小为536870912字节(试图分配12273327字节)
更新2
将限制设置为1500M
PHP致命错误:在第926行的C:\ inetpub \ wwwroot \ tlm \ lib \ Cake \ View \ View.php中内存不足(已分配1307312128)(尝试分配23778447字节) PHP致命错误:第116行的C:\ inetpub \ wwwroot \ tlm \ lib \ Cake \ Error \ ErrorHandler.php超出了30秒的最大执行时间
更新3
我使用的是PHP 5.5.6。通过替换lib
文件夹更新到CakePHP 2.6之后,我多次得到相同的错误,并且在同样错误的30行之后,我得到了内存。
PHP严格标准:只应在第33行的C:\ inetpub \ wwwroot \ tlm \ app \ Plugin \ Combinator \ View \ Helper \ CombinatorHelper.php中通过引用分配变量
PHP严格标准:仅......
PHP严格标准:仅......
PHP致命错误:在第958行的C:\ inetpub \ wwwroot \ tlm \ lib \ Cake \ View \ View.php中,允许的内存大小为134217728个字节(尝试分配3704512个字节)
PHP严格标准:只应在第33行的C:\ inetpub \ wwwroot \ tlm \ app \ Plugin \ Combinator \ View \ Helper \ CombinatorHelper.php中通过引用分配变量
PHP严格标准:仅......
PHP严格标准:仅......
答案 0 :(得分:1)
在这种情况下,将此方法暂时放在AppController中是有帮助的:
public function appError($method, $messages) {
die('Application error: called handler method ' . $method);
}
这通常会给我一个提示,让我看得更远。
答案 1 :(得分:0)
编辑php.ini并将memory_limit
设置为比当前设置更大的范围。
与set memory_limit = 512M
<强>更新强>
增加max_execution_time
答案 2 :(得分:0)
遇到类似的错误后,看起来像CakeSession.php第489行中存在问题:
throw new CakeSessionException(sprintf(
__d('cake_dev', 'Unable to configure the session, setting %s failed.'),
$setting
));
这似乎导致无限循环,退出此处将阻止它。我不知道为什么这会导致循环,但它之所以这样做是因为CakePHP无法使用ini_set
设置一些php.ini变量。如果此时打印出$setting
和$value
,您将能够看到问题变量是什么。对我来说是session.auto_start
,它是在此文件的_defaultConfig
函数中设置的。我评论了为此解决问题的线条。
答案 3 :(得分:0)
我有同样的错误,这有助于:
我只是将$this->set('votingBookings')
更改为控制器文件中的$this->set('bookings')
。希望能帮助任何人。爱SO,想要贡献我的2美分。欢呼:D