我使用 digitalocean 将 Prestashop 从本地主机迁移到网站域,但是当我打开此网站时,出现此错误
致命错误:未捕获 --> Smarty:无法写入文件 /var/www/html/prestashop/cache/smarty/compile/a4/36/f1/wrt549a35e49b3b44_77591243 <-- thrown in /var/www/html/prestashop/tools/smarty/sysplugins/smarty_internal_write_file.php on line 46.
我尝试将smarty文件夹的权限更改为755,但没有成功。我不知道如何解决它。
您的问题肯定与权限有关。这取决于 Apache 和 PHP 的设置方式。
首先,检查谁拥有这些文件夹。例如,简单的 apache2 和 php 安装以 www-data 用户身份运行。例如,如果您使用“user1”连接到 FTP 并上传了文件,则这些文件归您所有。该组可能也设置为“user1”。
因此,您可以修改、写入文件,但 PHP 进程不能,因为它们不拥有这些文件(例如,PHP 作为 www-data 运行)。
您最好的办法是联系服务器管理员并请他帮助您。
记住:永远不要为网站上的任何文件/文件夹设置777,以正确的方式解决问题。
设置www-data权限来访问fpm.sock
sudo chown -R www-data:www-data /var/www/*
对于 Prestashop 安装,请删除以下文件夹的内容:cache/smarty/compile、cache/smarty/cache、img/tmp;
删除文件夹中的所有文件,除了index.php文件。
如果这不起作用 chmod 目录到 775
我使用以下命令授予对主网站目录中的目录和子目录的读写访问权限。之后,您可以手动授予需要读写访问权限的文件的访问权限。
sudo 查找。 -type d -exec chmod a+rw {} ; sudo chmod a+rw 文件名.ext