Permissions 预设:SmartyException';带有消息';无法写入文件…';

Permissions 预设:SmartyException';带有消息';无法写入文件…';,permissions,smarty,prestashop,Permissions,Smarty,Prestashop,我知道这个问题已经被讨论过了,如果我来这里寻求帮助,那是因为我在互联网上找到的所有解决方案都不适合我 问题如下: 我正在使用Prestashop 1.6。我在本地开发了我的网站,一切正常,所以我决定把它放到网上。但在FTP上移动数据库和网站后,我遇到以下错误: 未捕获异常“SmartyException”,在/home/web/chienchat/chienchat/cache/smarty/compile/wrt53fc8900660ea3.68556794中显示消息“无法写入文件/home/

我知道这个问题已经被讨论过了,如果我来这里寻求帮助,那是因为我在互联网上找到的所有解决方案都不适合我

问题如下:

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

未捕获异常“SmartyException”,在/home/web/chienchat/chienchat/cache/smarty/compile/wrt53fc8900660ea3.68556794中显示消息“无法写入文件/home/web/chienchat/tools/smarty/sysplugins/smarty_internal_write_file.php:44 堆栈跟踪:#0/home/web/chienchat/tools/smarty/sysplugins/smarty\u internal\u template.php(201):smarty\u internal\u Write\u File::writeFile('/home/web/chien…','compileTemplateSource()#2/home/web/chienchat/classes/module/module/module/module.php(1860):smarty\u internal\u 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在第44行的/home/web/chienchat/tools/smarty/sysplugins/smarty_internal_write_file.php中

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

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

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

此处列出了文件夹:

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

这种情况下的解决方案是

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


不过,对于c语言来说,这是一个警告——它并不能解决这个问题,因为缓存仍在增长。它只是取消了文件系统对可以保存多少缓存项的限制。对于遇到此问题的用户,我能建议的最好方法是在出现此错误时自动跟踪日志并清除缓存。

我没有安装新的Prestashop,我已将本地Prestashop文件夹转移到我的网站。我需要直接重新安装Prestashop吗?顺便问一下,我如何确定我所在的apache用户是所需文件夹的所有者?我在我的ftp中创建了它们,我使用“root”用户登录到服务器,所以我很确定这很好,不是吗?如何在不重新安装的情况下进行环境兼容性检查?我非常感谢你的关心。我不使用linux或ubuntu,因此我不能像在大多数互联网主题上看到的那样键入命令行。不,你不需要重新安装PrestaShop。只需确保文件夹具有权限即可。在大多数情况下,这就是问题所在-smarty无法写入编译文件夹(cache/smarty/compile)。您可以在BackOffice>高级参数>配置信息中查看它。root用户和apache用户是两个不同的用户。Root有访问权限,但apache可能没有。用755测试缓存/smarty/compile。我在每个文件夹和文件上都设置了CHMOD 755,但它不起作用。我试过775,也没用。我无法访问服务器上的后台办公室,因此无法检查配置信息。我能做什么?我得到了一个新信息:我再次删除了cache/smarty文件夹,但当我刷新页面时,该文件夹没有再次创建。将CHMOD 777放入“cache”文件夹后,再次刷新页面后,创建了cache/smarty和cache/smarty/compile文件夹,但后者为空。1。查找您的apache用户2。让它成为整个发行版的所有者,递归地原谅我缺乏知识,但是我如何不通过命令行来做到这一点呢?我觉得我的解释不完整,所以我要补充一点,这是一个由www.nerim.fr托管的测试服务器,我以前从未使用过这个主机。服务器上托管了几个测试网站,但我以前从未使用过apache服务器,所以我只是将我的网站放在FTP目录中。然后我转移了数据库,我被这个错误阻止了,我没有对已经存在的服务器做任何事情。但是,其他网站有几个虚拟服务器。