Laravel:file_put_contents() 权限被拒绝 — 正确的 storage/framework/cache 权限?

Laravel: file_put_contents() permission denied — correct storage/framework/cache permissions?

我正在努力编辑位于 storage/framework/cache 的 Laravel 缓存。我有一个工作 运行ning 保存到某个缓存,但每次工作 运行s 时,都会出现此错误:

ERROR: file_put_contents(/var/www/html/---/storage/framework/cache/data/3c/c7/3cc7fd54b5a3cb08ceb0754f58371cec1196159a): failed to open stream: Permission denied

详情

感谢任何帮助!提前谢谢你。

1) 如果您查看 cache.php 配置文件,您会发现文件驱动程序的 storage/framework/cache/data 文件夹设置为写入:

'file' => [
    'driver' => 'file',
    'path' => storage_path('framework/cache/data'),
],

这意味着必须正确设置该文件夹的权限,以便网络服务器用户可以成功写入该文件夹。

2) 或者你可以 运行 这个命令对我来说它解决了我的问题

php artisan cache:clear 
chmod -R 775 storage/
composer dump-autoload

我使用 sudo php artisan cache:clear 完全清除了缓存。后来就再也没有出现过这个问题。

反对 Ismoil 的回答:永远不要创建 Laravel 存储文件夹 777。它会带来安全风险。

其实刚好需要

php artisan cache:clear 

但它只是暂时的,当使用新的 ip 或其他东西登录帐户时。还是发了。

所以尝试 chmod:

chmod -R 775 storage

chmod -R 775 storage/*

它解决问题

如果您使用的是 redis,那么您应该设置 .env 变量

CACHE_DRIVER=redis