コンパイルファイル(compile)を削除できない

Smartyではテンプレートファイルから出力を行うときに、 処理を早くするためテンプレートを分析したファイルを一度コンパイルファイル(compile_dir)以下に保存し、 次回以降はテンプレートファイルを読まずこのファイルを読み込んでいます。

しかしこのファイルはPHPの実行ユーザー(通常では『apache』)によって保存される。
そのため、それ以外のユーザーは書き込み権限が無いので削除や変更はできない。

デフォルトでは書き込み属性(パーミッション)が、ファイルは 0644、ディレクトリは 0771になっています。
$_file_permsクラス変数を 0666、 $_dir_permsクラス変数を 0777に変更することで、それ以降にコンパイルされるファイルは削除ができるようになる。
この変更でも既に作成されたファイルやディレクトリの属性は再コンパイル時にしか変更されないため結局それなりのスクリプトを書くか、apacheユーザーの ファイルを変更できるユーザーで変更、削除する必要があります。

$_file_permsクラス変数
$_dir_permsクラス変数

関連記事

スポンサーリンク

CURRENT_TIME関数 現在の時刻を求める

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る