株式会社プロネット

 

WEBシステム開発、ITコンサルティング、自社サービス、教育事業 - これからのビジネスへのIT活用ソリューションをご提案致します。

CakePHP2のcacheパーミッション

2017.8.23(Wed) 19:53 | CakePHP | yamamoto

CakePHPのcacheのパーミッションエラーにはまってしまいました。
調べたら「777にすればいいんじゃん」とばかりでした。

1. 状況

今回の状況は、webからアクセスするapacheユーザーと
コマンドなどを実行するhogeユーザーがいます。
apacheユーザーとhogeユーザーはapacheグループに所属しています。


2. キャッシュディレクトリ

CakePHPではキャッシュディレクトリがなければ自動で作成されます。
この時のパーミッションはumaskの設定が反映されます。
https://webkaru.net/linux/umask-command/

そのためLinuxコマンドで以下を実行して775でディレクトリが作成されるようにします。

umask -S # 確認
umask 002
umask -S # 確認

この時、hogeユーザーとapacheユーザーと両方実行が必要です。


3. キャッシュファイル

次にキャッシュファイルについてです。
キャッシュファイルのパーミッションは、Cakephpの[app/Config/bootstra.php]で設定できます。
[Cache::config('default', array('engine' => 'File'));]を以下のように修正します。

Cache::config('default', array(
'engine' => 'File',
''mask' => 0775,'
));