[PHP-users 27814] smartyのキャッシュ処理

sasakimakoto_jp@yahoo.co.jp sasakimakoto_jp @ yahoo.co.jp
2005年 12月 8日 (木) 19:34:03 JST


佐々木です。

サーバーへの負荷が激しいのでページキャッシュを導入しようと
Smarty2.5.0+最新PHP4にてSmartyのキャッシュ機能を使おうと下記
のようなコードを書いてみたのですが、試行錯誤した結果
どうやらエラー処理に出力バッファを使っている関係で
ログに下記のようなエラーが表示されて使えないようなのですが
解決策はないものでしょうか?

cacheのパーミッション等はすべて777にしてあります。

------------------
index.phpの内容
------------------

$smarty = new Smarty;
$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'cache/';
$smarty->plugins_dir = 'plugins/';

ob_start('ob_handler');
set_error_handler('error_handler');

$smarty->cache_lifetime = 600;
$smarty->->caching = true; <===ここをfalseにすると正常に動きます
if($smarty->is_cached("index.tpl")){
   $smarty->display("index.tpl");
   exit;
}

// 処理

ob_end_flush();
if(ob_get_length() > 0) exit;

$smarty->display("index.tpl");

------------------
エラーの内容
------------------
ERRNO:2
ERRTYPE:Warning
ERRMSG:fopen(/home/test/cache/%%115/%%1151393107/index.tpl.php):failed
to open stream: No such file or directory
FILENAME:/home/test/smarty/Smarty.class.php
LINENUM:1998
--------------------------------------
STOP HIV/AIDS.
Yahoo! JAPAN Redribbon Campaign 2005
http://pr.mail.yahoo.co.jp/redribbon/


PHP-users メーリングリストの案内