CakePHP2でUnable to allocate memory for pool.エラー

CakePHP2をインストールしてdatabase.phpとcore.phpを設定、簡単なテーブルを作成してBakeしてみたところ、大量に「Warning (2): include() [http://php.net/function.include]: Unable to allocate memory for pool. [CORE/Cake/Core/App.php, line 562]」のエラーが!

ググってみたらAPCのエラーのよう。

PECL apcのエラー Unable to allocate memory for pool. | 永田順伸のブログ 

このページ内のアドバイスどおり、/etc/php.d/apc.iniを修正した。
apc.mmap_file_mask=/tmp/apc.XXXXX

apc.mmap_file_mask=/dev/zero
へ変更するとエラーは表示されなくなった。

心にひっかかりを覚えながら、上記のサイトを参考に修正しようと思ったら、既になってた。ひっかかりは前にやった事があったからみたい。さらにググってみたら、知恵袋でこんなものが。

PHP 5.3.6で、Warning: require(): Unable to allocate memory for pool.という警… – Yahoo!知恵袋

APCのエラーによるものです。(* APCとは、PHPの中間コードのキャッシュや最適化を行う拡張モジュールのことです。)

対処法は、APCを無効にすればOKです。以下の1行を.htaccessに追加してください。

php_flag apc.cache_by_default Off

恐るおそるwebroot/.htaccessに追加してみたところ、無事エラーが消えた!core.phpハッキリした原因が分からないのでとっても気持ち悪いけど、APCってPHPレベルで設定してなくても勝手に動いちゃってるものなのかな?それともPHPのバージョンによるもの??うーん…

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です