【问题标题】:How do I get the "php artisan cache: clear" command to work?如何让“php artisan cache: clear”命令工作?
【发布时间】:2019-02-09 21:54:18
【问题描述】:

我使用的是 Mac。无法执行命令

php artisan cache: clear

我得到回报:

Failed to clear cache. Make sure you have the proper permissions.

这是给 Laravel 的。任何想法如何解决这个问题?

【问题讨论】:

  • 以前这个操作一直有效。现在我像往常一样创建了一个新项目。我第一次收到这个错误。
  • 用超级管理员执行pront并尝试
  • 您的storage/framework/cache 文件夹是否设置了正确的权限?当我不得不以root 与当前用户的身份运行composer 命令(例如composer create-project laravel/laravel)时,这种情况最近也开始改变。
  • storage/framework/cache 这个文件夹是空的。不正常吗?
  • 使用超级管理员在文件夹内运行 cdm pront 并尝试拥有所有权限

标签: php laravel caching laravel-artisan


【解决方案1】:

手动创建 storage/framework/cache/data 目录。

【讨论】:

  • 如果目录不存在,这将起作用。如果是这样,那就是权限问题。
【解决方案2】:

这可能是几件事之一(需要更多信息来缩小范围):

  1. 不存在缓存文件/记录。(已更新以反映您最新的 cmets)
  2. 如果您以其他用户身份运行网络服务器(apache 或 ngix),那么您将无法以自己的身份访问这些文件。
  3. 如果您使用的是文件以外的缓存驱动程序,例如 redis 或数据库,请确保提供的凭据正确。
  4. 您使用的 Laravel 版本可能存在错误;这不太可能。

第 1 点和第 2 点的扩展:

  1. 这是正常行为。如果您打开的页面希望它们被缓存但实际上没有,请拆分页面并使用@include 指令将页面的动态和静态元素拆分为单独的刀片文件。

  2. 我喜欢将我的用户添加到与 Web 服务器组相同的组 (www)。然后将所有文件的组更改为 www,具有组读取权限,并且仅对 bootstrap/cachestorage 目录具有写入权限。

【讨论】:

  • @GeorgeHanson 在 5.7 中删除文件的任何失败都会导致消息:$successful = $this->cache()->flush(); $this->flushFacades(); if (!$successful) { return $this->error('清除缓存失败。请确保您有适当的权限。');这不是错误,只是消息的更改。它曾经忽略空目录。
【解决方案3】:

我认为这可能是最新版本的 Laravel 的一个错误,但看起来不太可能。我今天开始了一个新项目并安装了 Laravel 5.7 的新副本,它似乎导致了上述错误。但是,如果我使用 5.6,则不会出现错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 2017-04-02
    • 2016-05-09
    • 2019-04-13
    • 2017-08-24
    • 1970-01-01
    • 2020-05-21
    • 2018-06-07
    相关资源
    最近更新 更多