Smarty模板无法在本地服务器上运行

时间:2013-05-02 01:28:25

标签: php linux smarty

我无法让Smarty模板引擎在我的本地测试服务器上正常运行。我把它设置成这样:

<?php
// put full path to Smarty.class.php
require('smarty/Smarty.class.php');
$smarty = new Smarty();
$smarty->testInstall();
$smarty->setTemplateDir('smarty/templates');
$smarty->setCompileDir('smarty/templates_c');
$smarty->setCacheDir('smarty/cache');
$smarty->setConfigDir('smarty/configs');

$smarty->assign('name', 'Ned');
$smarty->display('index.tpl');

?>

但是,我一直收到这个错误:

Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file 'index.tpl'' in /var/www/WEBSITE/smarty/sysplugins/smarty_internal_templatebase.php:127 Stack trace: #0 /var/www/WEBSITE/smarty/sysplugins/smarty_internal_templatebase.php(374): Smarty_Internal_TemplateBase->fetch('index.tpl', NULL, NULL, NULL, true) #1 /var/www/WEBSITE/test.php(13): Smarty_Internal_TemplateBase->display('index.tpl') #2 {main} thrown in /var/www/WEBSITE/smarty/sysplugins/smarty_internal_templatebase.php on line 127

我使用了testInstall函数并返回了:

Smarty Installation test...
Testing template directory...
/var/www/SteamKing/templates is OK.
Testing compile directory...
FAILED: /var/www/SteamKing/templates_c is not writable.
Testing plugins directory...
/var/www/SteamKing/smarty/plugins is OK.
Testing cache directory...
FAILED: /var/www/SteamKing/cache is not writable.
Testing configs directory...
FAILED: ./configs/ does not exist.
Testing sysplugin files...
... OK
Testing plugin files...
... OK
Tests complete.

我经历了整个过程,确保文件夹实际上是可写的,除了我仍然得到错误。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一方面,在分配路径的地方,模板的路径是错误的。路径为/var/www/SteamKing而不是smarty/

使用绝对路径通常是个好主意,这样您就可以移动文件而不必担心模板的位置。

至于为什么你的缓存和template_c不可写,你需要显示实际路径或显示你曾经尝试使它们可写的命令。