2013年8月6日火曜日

CakePHP2.x SplFileInfo::openFileエラー

Warning:
SplFileInfo::openFile
(/www/app/tmp/cache/persistent/myapp_cake_core_cake_console_):
failed to open stream:
Permission denied in /www/lib/Cake/Cache/Engine/FileEngine.php on line 314

とかいうエラーが出るようになった。
ファイルの所有者とアクセスユーザーが違うことで起きるエラーらしい。
umaskを設定すればいいですよ、とのことだが、まずumaskってなんですか?

調べた。
ファイル作成時に、利用できるパーミッションを指定するものだそうな。

アクセスユーザーからもファイルを取得できるように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,
    ));

警告文が出なくなった。

0 件のコメント:

コメントを投稿