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のバージョンによるもの??うーん…