1

我对 Smarty PHP 模板引擎 - 版本 2.6.0 (smarty.net) 感到很头疼

我在 error_log 中不断出现的错误是

PHP 致命错误:Smarty 错误:无法写入 $compile_dir '/var/www/vhosts/domain/library/templates/compiled'。确保 $compile_dir 对 Web 服务器用户是可写的。在 /var/www/vhosts/domain/library/Smarty-2.6.0/libs/Smarty.class.php 第 1088 行

我已将文件夹和文件设为可写,权限设置为 777,但此错误仍在发生。

它使更新模板文件成为一场噩梦,因为目前我正在两个地方更新代码 - >模板文件夹和编译文件夹。就像没有编译发生,所以编辑已经编译的文件是我可以对站点进行更改的唯一方法。

但是,我有一个模板文件被包含在另一个模板文件中,而这不在编译目录中。在此文件中进行简单的文本更改后,现在已完全删除了该站点的该部分,并且该页面刚刚中断了该部分应该出现的内容。

我完全被这个难住了,我希望你们中的一些有 Smarty 经验的人能够帮助我。

先感谢您。

4

2 回答 2

0

确保在 smarty 配置文件中分配编译目录

这是我使用的配置示例,它对我来说很好用

/////Smarty including
require_once('libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'template'; // template folder
$smarty->compile_dir = 'cache'; // Create a Folder Cache with 777 Permission

此设置适用于最新的 smarty 版本 Smarty 3.x。

于 2013-10-01T18:30:45.557 回答
0

您需要编辑文件 httpd.conf

vim +231 /etc/httpd/conf/httpd.conf

查看那里指定了哪些用户和组,

例如,如果您看到以下内容:

User asterisk
Group asterisk

然后您需要在目录/var/www/上授予该用户/组的权限

chown -R asterisk:asterisk /var/www/
于 2014-09-23T14:32:56.103 回答