为啥我的网站没有加载,而是出现此错误 - “Smarty:无法写入文件”?

Posted

技术标签:

【中文标题】为啥我的网站没有加载,而是出现此错误 - “Smarty:无法写入文件”?【英文标题】:Why is my website not loading and instead getting this error - "Smarty: unable to write file"?为什么我的网站没有加载,而是出现此错误 - “Smarty:无法写入文件”? 【发布时间】:2020-04-04 06:43:15 【问题描述】:

完整的错误信息是:

Fatal error: Uncaught --> Smarty: unable to write file /var/www/html/cache/smarty/compile/9d/fc/13/wrt5df05326c094e8_21248361 <-- thrown in /var/www/html/tools/smarty/sysplugins/smarty_internal_write_file.php on line 46

我已经清除了“/var/www/html/cache/smarty/compile/”目录,而“/var/www/html/cache/smarty/cache”目录只有一个“index.php” " 文件(人们也建议清除此目录)。

我已将这两个目录(甚至递归)以及 smarty_internal_write_file.php 的权限设置为 777。

我已经检查过,驱动器上有足够的空间。还清除了 chrome 缓存/尝试了不同的浏览器。

我上一次尝试访问此站点是 2-3 个月前,没有出现任何问题。我们的网站托管在 AWS 上的 ubuntu EC2 实例上。

我在某处阅读了一个答案,建议如果上述方法不起作用,请联系服务器主机管理员,但我不确定他们如何在这种情况下提供帮助。

【问题讨论】:

【参考方案1】:

您的脚本是否也创建了必要的文件夹?它们存在吗?

如果您只有 /var/www/html/cache/smarty/compile/ 并且您要求脚本写入 /var/www/html/cache/smarty/compile /9d/fc/13/ 文件名为 wrt5df05326c094e8_21248361,那么它还需要先创建 /9d 然后创建 /fc/13

即使是 fopen 中的选项 w+ 也不会递归创建 3 个目录。

chmod(777) 存在安全风险,您应该将文件 chown 给网络用户。

【讨论】:

【参考方案2】:

这绝对是权限问题。通常目录有:755 和文件:644。 暂时,从管理员禁用缓存。然后尝试加载网站。

【讨论】:

如何从管理员禁用缓存? 哦,您的意思是从管理站点中禁用缓存?问题是我也无法加载管理站点 我在尝试加载管理页面时遇到同样的错误,如果这就是你的意思的话。

以上是关于为啥我的网站没有加载,而是出现此错误 - “Smarty:无法写入文件”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的标志没有出现在主页上? [关闭]

为啥打开网页出现403forbidden的错误?

为啥有的网页会显示很抱歉,此网站无法访问,别人都可以访问的。

为啥我的 Fastcomet Django 网站没有加载 css?

为啥我的代码在 Windows 7 上不会出现段错误?

为啥我会收到此 Webpack 加载程序错误?