Laravel 根本原因所拥有的存储缓存文件夹无法清除缓存

Laravel Storage Cache folders owned by root causes fail in clearing cache

我在服务器(Ubuntu 18.04 LTS,apache2 网络服务器)上有一个 laravel 7 应用程序 运行。我的问题是,php artisan cache:clear 确实 return“无法清除缓存。确保您拥有适当的权限。”

我尝试了以下方法但没有成功:

在“storage/framework/cache/data”中新创建的缓存文件夹有时由用户 root 拥有,这似乎是问题所在。

如果我手动删除这些文件夹,它会一直有效,直到创建新的根文件夹。

使用 ps -aux 我看到 laravel 进程是来自用户 root 的 运行。我用 sudo -u myusername 更改了它,但这并没有改变行为。我在服务器重启时在 rc.local 脚本中启动 laravel 应用程序 (php artisan serve)。

当前用户“myusername”在组 www-data 中。

问题应该是您的存储路径中没有文件夹。你应该

  1. storage/framework/sessions
  2. storage/framework/views
  3. storage/framework/cache

尝试创建空文件夹,应该可以。

您必须 运行 来自与您当前用户属于同一用户组的用户的网络服务器。默认情况下 rc.localroot 用户调用命令,这不是你需要的。

这样编辑您的rc.local

su user01 -c 'php /var/www/artisan serve'

其中 user01 是您当前的用户,/var/www/artisan 是您的 artisan 文件的完整路径。另外,也许您应该指定 php bin 文件的完整路径,例如 /usr/bin/php 或其他。

更多详情here