CakePHPを使ったソース一式を"git clone"し、セットアップしていたところ以下のようなエラーが出力されました。
書き込みエラーということですが、app/tmp配下の権限を設定していないためでした。
■エラー内容
[time] [error] [client xxx.xxx.xxx.xxx] PHP Warning: _cake_core_ cache was unable to write 'cake_dev_ja' to File cache in /var/www/html/lib/Cake/Cache/Cache.php on line 328
[time] [error] [client xxx.xxx.xxx.xxx] PHP Warning: /var/www/html/app/tmp/cache/persistent/ is not writable in /var/www/html/lib/Cake/Cache/Engine/FileEngine.php on line 385
[time] [error] [client xxx.xxx.xxx.xxx] PHP Fatal error: Uncaught exception 'CacheException' with message 'Cache engine "_cake_core_" is not properly configured. Ensure required extensions are installed, and credentials/permissions are correct' in /var/www/html/lib/Cake/Cache/Cache.php:186\nStack trace:\n#0 /var/www/html/lib/Cake/Cache/Cache.php(151): Cache::_buildEngine('_cake_core_')\n#1 /var/www/html/app/Config/core.php(376): Cache::config('_cake_core_', Array)\n#2 /var/www/html/lib/Cake/Core/Configure.php(72): include('/var/www/html/a...')\n#3 /var/www/html/lib/Cake/bootstrap.php(431): Configure::bootstrap(true)\n#4 /var/www/html/app/webroot/index.php(100): include('/var/www/html/l...')\n#5 {main}\n thrown in /var/www/html/lib/Cake/Cache/Cache.php on line 186
■暫定対策
- app/tmp配下のパーミッションを777にする、もしくは、app/tmp配下のOWNERとGROUPをapacheにする
→要はapacheにも実行権限を与えるということ
コマンドイメージ(sudoで行う必要があるかもしれません。動作は未確認)$ chmod 777 -R app/tmp $ # もしくは、 $ chown apache:apache -R app/tmp
■疑問
- 何回かgitから持ってきて環境再構築しているけど、忘れたころに再構築するのでよく忘れる。
→gitから持ってきた時に自動で、変更や設定を反映するような仕組みを作る必要がある?
→そもそもgitで管理するところではない?
→対策として正しい? 自分の場合、ローカルだからいいけど正式な対応なのかどうかは要調査
■参考
VagrantでCakePHPを動かそうとした際に躓いたこと
→Vagrantでの話なので、Vagrantfileの修正で対応していますが、、、
コメント