百分急求,smarty 方面的问题

macker0030 2007-07-10 01:33:18
最近刚接触php,对smarty一无所知,只前几天听说了这个名字。

今天有个客户叫我看看他的一个网站,页面使用了西班牙语,而html里没指定所使用的编码,所以页面会出现乱码。客户让我帮着改一下。我想应该在html里加入<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />问题就可以解决了。

linux服务器,ssh登录进去,我看了看index.php,才知道这个可能是用smarty做的,里面有display("index.html"),我在templates目录里找到了index.html,打开一看,里面上头有include a.html,于是找到a.html,打开一看,正是网页的内容。于是我加上了<meta>,保存退出。

问题出现了,首页这时不能访问了!页面打开一片空白,查看源文件,只有几行html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8"></HEAD>
<BODY></BODY></HTML>
不是前面提到文件里的内容。

我查了一下,知道smarty会对模板文件进行编译,转成php,于是试着在complie目录里,把几个文件改名,然后再刷新页面,还是不能显示。

只能来这紧急求助。因为现在网站不能显示,如果客户看到了会不高兴的。
请大家帮帮忙,这是什么原因,麻烦说详细点!

自已猜应该是缓存方面的原因,但具体就不知道了。
...全文
429 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
macker0030 2007-07-10
  • 打赏
  • 举报
回复
搞定了,总结一下,的确是权限的原因,tmp目录apache用户不能写导致的,百度了一下,知道了
drwxr-xr-x 2 root root 的意思,用chmod 777 tmp 命令,现在页面能访问了。

把tmp目录改名,然后新建一个tmp目录,再同样修改权限,然后刷新页面,OK,能访问了。缓存刷新了!

感谢各位,结贴!
总哈哈 2007-07-10
  • 打赏
  • 举报
回复
chmod 0777 目录路径 好像是这样的,好久没有使linux了,如果不行,自己在百试上找找吧,应该挺多的
macker0030 2007-07-10
  • 打赏
  • 举报
回复
怎么给tmp目录加777权限? chmod怎么用?
总哈哈 2007-07-10
  • 打赏
  • 举报
回复
不过像你那么改了那么一点地方,权限就变了,感到很奇怪.
总哈哈 2007-07-10
  • 打赏
  • 举报
回复
给个777权限吧,好像少了执行权限了.
总哈哈 2007-07-10
  • 打赏
  • 举报
回复
个人觉得应该不可能是权限的问题,因为中间楼主根本都只是改了html里面的东西了,觉得是哪里面出错了,导致页面停止输出了.
macker0030 2007-07-10
  • 打赏
  • 举报
回复
用ls -l命令列出文件和目录,里面有

drwxr-xr-x 2 root root 4096 Jul 10 01:16 tmp

这些表示什么权限。还有,在哪里设置apache用户权限,是apache的配置里,还是tmp的权限里?麻烦哪位linux熟点的讲一下。谢谢!

我先去apache配置里看看
young40 2007-07-10
  • 打赏
  • 举报
回复
同意楼上,不可写导致smarty编译后无法写入文件
所以输入为空
macker0030 2007-07-10
  • 打赏
  • 举报
回复
我也猜会不会是tmp目录没有写权限。先去查一下linux权限设置。linux之前也没接触过,汗

谢谢大家!
yu1928 2007-07-10
  • 打赏
  • 举报
回复
把/tmp 目录改成apache用户可写的,按照你说的症状,应该是tmp目录权限的问题
young40 2007-07-10
  • 打赏
  • 举报
回复
是不是/tmp目录的权限没有设置为可写?
macker0030 2007-07-10
  • 打赏
  • 举报
回复
<META http-equiv=Content-Type content="text/html; charset=utf-8">


这个是原来模板文件里的内容?

//不是的。这些输出的都不是模板文件里的内容。
xiaoyao888 2007-07-10
  • 打赏
  • 举报
回复
那就把源文件编辑一下重新存,比如在不相干的地方加个空格什么的,再重新访问一次,至于缓存目录下面的php文件,全部删掉让它重建。我在windows下测试时也遇到同样的问题,我就是这样做的,但在linux下就没有了,不过在linux下总是不能及时更新页面,非得手动去清缓存。
wowh 2007-07-10
  • 打赏
  • 举报
回复
<META http-equiv=Content-Type content="text/html; charset=utf-8">


这个是原来模板文件里的内容?
macker0030 2007-07-10
  • 打赏
  • 举报
回复
显示空白,查看源文件,代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8"></HEAD>
<BODY></BODY></HTML>
foolbirdflyfirst 2007-07-10
  • 打赏
  • 举报
回复
我查了一下,知道smarty会对模板文件进行编译,转成php,于是试着在complie目录里,把几个文件改名,然后再刷新页面,还是不能显示。
==========================================================
不能显示是什么意思?显示空白?
macker0030 2007-07-10
  • 打赏
  • 举报
回复
我看到它compile目录是/tmp,我把/tmp改名,然后再建一个空的,结果任何网页都不能显示了。再改回去又好了。
macker0030 2007-07-10
  • 打赏
  • 举报
回复
应该也不是权限方面的问题。 网站的首页其实有两个,一个是英语的,一个是西班牙语,index.php根据参数来分别display indexb.html和index.html,我改的是indexb.html里包含的一个文件。现在西班牙语的不能显示,而英语的能显示,因为我没改过。

我查看过我修改过的文件权限,与其它文件是一样的。

呃,楼上的是不是这个意思,缓存目录没有写权限,新的模板文件不能被编译?

我在compile_dir的目录里,直接把相关的php(应该是自动生成的)的内容改了,也不能显示。

最最最奇怪的事情是,我把我改过的文件改回去,问题依然还是存在的。这个smarty到底是怎么一回事?
xiaoyao888 2007-07-10
  • 打赏
  • 举报
回复
估计缓存的问题吧,最好把smarty的缓存清一下,一般在templates_c目录下,把文件都删了再试试。我有时也遇到这样的问题。清了缓存重新生成一下就好了
nowblue777 2007-07-10
  • 打赏
  • 举报
回复
查看一下模板缓存目录的读写权限.
加载更多回复(2)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧