CakePHPのキャッシュファイルのパーミッションエラーの対処法
CakePHPで以下のようなエラーが出るときがある。
問題
Warning: SplFileInfo::openFile(/www/app/tmp/cache/persistent/cake_core_cake_console_) [splfileinfo.openfile]: failed to open stream: Permission denied in /www/lib/Cake/Cache/Engine/FileEngine.php
このエラーは、キャッシュファイルのパーミッションの設定によって、ファイル所有者とアクセスユーザーが異なるために発生する。
解決方法
umaskを設定することで解決する。
umaskとは
ファイルを作成するときにデフォルトで使用するパーミッション設定の事。
キャッシュファイルの設定を更新
core.phpにのキャッシュの設定に以下の記述を追加する。
'mask' => 0666
app/Config/core.php
Cache::config('_cake_core_', array(
'engine' => $engine,
'prefix' => $prefix . 'cake_core_',
'path' => CACHE . 'persistent' . DS,
'serialize' => ($engine === 'File'),
'duration' => $duration,
'mask' => 0666,
));
Cache::config('_cake_model_', array(
'engine' => $engine,
'prefix' => $prefix . 'cake_model_',
'path' => CACHE . 'models' . DS,
'serialize' => ($engine === 'File'),
'duration' => $duration,
'mask' => 0666,
));
これでエラーは出なくなるはず!
Author And Source
この問題について(CakePHPのキャッシュファイルのパーミッションエラーの対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/katsukii/items/b96a79b30ba7ea023bc6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .