コンパイルファイル(compile)を削除できない
Smartyではテンプレートファイルから出力を行うときに、
処理を早くするためテンプレートを分析したファイルを一度コンパイルファイル(compile_dir)以下に保存し、
次回以降はテンプレートファイルを読まずこのファイルを読み込んでいます。
しかしこのファイルはPHPの実行ユーザー(通常では『apache』)によって保存される。
そのため、それ以外のユーザーは書き込み権限が無いので削除や変更はできない。
デフォルトでは書き込み属性(パーミッション)が、ファイルは 0644、ディレクトリは 0771になっています。
$_file_permsクラス変数を 0666、
$_dir_permsクラス変数を 0777に変更することで、それ以降にコンパイルされるファイルは削除ができるようになる。
この変更でも既に作成されたファイルやディレクトリの属性は再コンパイル時にしか変更されないため結局それなりのスクリプトを書くか、apacheユーザーの
ファイルを変更できるユーザーで変更、削除する必要があります。
$_file_permsクラス変数
$_dir_permsクラス変数
関連記事
- Smarty2をPHP7に対応させる方法(The /e modifier is no longer supported Smarty_Compiler.class.php, line 270)
- Smarty error unrecognized tag 'assign' 組み込み関数が使えない
- 各フィルターの動作するタイミング
- 3桁づつカンマ区切りにする拡張モディファー
- 値が空だったら、 を入れるモディファー
- 携帯表示用に文字を全角から半角にする
- Docomoの個体識別情報取得パラメータ『NULLGWDOCOMO』をSmartyで付ける
- Docomoの個体識別情報iモードID(guid)取得パラメータ『guid=on』をSmartyで付ける
- Docomoの個体識別情報取得属性『utn』をSmartyで付ける
- 読み込まれているテンプレ名を取得
- env , server を読み込む
- クッキーを読み込む
- GET,POSTなどのパラメータを読み出す
- 連想配列でパラメータを渡す方法
- オブジェクトのメンバ変数を読み込む
- 配列を読み込む
- Smarty
スポンサーリンク