CakePHP 2.2 を実行していて、コントローラーを拒否し、他のいくつかのコントローラーを許可するグループがあります。そのグループのユーザーとしてログインし、明示的な権限を持っていないコントローラーにアクセスしようとすると、次のエラーが発生します。
致命的なエラー: 行 672 の /var/www/project/lib/Cake/Network/CakeResponse.php で 134217728 バイトの許容メモリ サイズが使い果たされました (32 バイトを割り当てようとしました)
また:
致命的なエラー: 行 155 の /var/www/project/lib/Cake/Event/CakeEventManager.php で 134217728 バイトの許容メモリ サイズが使い果たされました (80 バイトを割り当てようとしました)
これは、ユーザーがコントローラーにアクセスできない場合にのみ発生します。これが発生する理由はありますか?AppController は次のように構成されます。
public $components = array(
'Acl',
'Auth' => array(
'authorize' => array(
'Actions' => array('actionPath' => 'controllers'),
),
'Form' => array(
'userModel' => 'User',
'fields' => array(
'username' => 'username',
'password' => 'password'
)
),
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
),
'loginRedirect' => '/users/dashboard', //'/admin/customers/index',//'/admin/tread_designs', // '/shopfloor/build/app.html',
'logoutRedirect' => '/users/login', //'/shopfloor/build/app.html'
)
);
そして beforeFilter:
public function beforeFilter() {
parent::beforeFilter();
if($this->RequestHandler->responseType() == 'json'){
$this->RequestHandler->setContent('json', 'application/json' );
}
$this->Auth->ajaxLogin = '/users/session_expired';
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
}
これについて混乱しており、あなたの助けに感謝します。また、メモリ制限を 1024MB 上げると、代わりにタイムアウトになります。ばかげた何かが起きています。
UPDATE mysqlクエリログをtail -fすると、同じ3つのクエリを何度も試行してこのエラーを生成するリクエストが表示されます。