Prestashop:SmartyException'有消息'无法写文件...'

时间:2014-08-28 14:01:16

标签: permissions smarty prestashop

我知道这个主题已经涵盖了,如果我来这里寻求帮助,那是因为我在互联网上找到的所有解决方案对我都不起作用。

问题如下:

我正在使用Prestashop 1.6。我在本地开发了我的网站,一切都运行得很好,所以我决定把它放到网上。但在我的FTP上移动数据库和网站后,我遇到以下错误:

  
    
      

/home/web/chienchat/tools/smarty/sysplugins/smarty_internal_write_file.php中未捕获的异常'SmartyException'消息'无法写入文件/home/web/chienchat/cache/smarty/compile/wrt53fc8900660ea3.68556794': 44       堆栈跟踪:#0 /home/web/chienchat/tools/smarty/sysplugins/smarty_internal_template.php(201):Smarty_Internal_Write_File :: writeFile('/ home / web / chien ...','compileTemplateSource()#2 / home /web/chienchat/classes/module/Module.php(1860):Smarty_Internal_TemplateBase-> fetch()#3 /home/web/chienchat/modules/blockuserinfo/blockuserinfo.php(72):ModuleCore-> display(' / home / web / chien ...','blockuserinfo.t ...')#4 /home/web/chienchat/classes/Hook.php(507):BlockUserInfo-> hookDisplayTop(Array)#5 / home /web/chienchat/classes/controller/FrontController.php(444):HookCore :: exec('displayTop')#6 /home/web/chienchat/controllers/front/IndexController.php(37):F in / home /第44行的web / chienchat / tools / smarty / sysplugins / smarty_internal_write_file.php

    
  

我发现它可能是文件权限,所以为了测试我在整个www上设置了CHMOD 777,使用FileZilla。问题仍然存在。  我想指出,删除cache / smarty文件夹后,刷新非工作页面后,文件夹cache / smarty / compile会重新创建,但它是空的。请帮助我,我似乎无法接近任何解决方案。

3 个答案:

答案 0 :(得分:1)

正确的权限是755.如果这不起作用,请尝试775。

此外,apache用户必须是所需文件夹的所有者。

此处列出了文件夹: http://doc.prestashop.com/display/PS15/Installing+PrestaShop#InstallingPrestaShop-Systemcompatibility

答案 1 :(得分:1)

如果使用文件系统缓存,也会发生此错误。许多prestashop插件的编写方式会导致缓存未命中并存储每个页面的许多组合(页面名称,类别名称,语言等)。如果您有大量产品,这可能意味着您已经过了缓存文件夹的Inode限制,您将开始看到此错误,但仅限首次访问页面时。已经在缓存中的页面仍然可以正确呈现。

这种情况下的解决方案是

a)清除缓存 b)修复每个模块的所有缓存ID c)使用替代缓存策略

然而,对c的警告 - 由于缓存仍在增长,它无法解决问题。它只会消除文件系统对可以容纳的缓存项数量的限制。对于遇到此问题的人,我建议的最好的方法是在发生此错误时自动拖尾日志并清除缓存。

答案 2 :(得分:0)

你应该检查直接管理员或托管INODES。只是尝试增加它或删除文件。

我在执行xml导入时通常会遇到类似或相同的错误,托管的inode数量很少。