【问题标题】:Cannot create cache directory .. or directory is not writable. Proceeding without cache in Laravel无法创建缓存目录.. 或目录不可写。在 Laravel 中进行无缓存
【发布时间】:2016-06-22 19:37:46
【问题描述】:

我创建了一个新的 Laravel 项目。当我去终端安装依赖composer时显示以下警告:

Cannot create cache directory /home/w3cert/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache.

【问题讨论】:

  • 看起来 composer 在 /home/w3cert/.composer/cache/ 文件夹中没有写权限
  • 如果您在 Linux 上运行 sudo composer self-update 也可能发生这种情况,因为之后 ~/.composer 目录将归 root 所有。

标签: php laravel composer-php


【解决方案1】:

更改 .composer 目录的所有权:

sudo chown -R $USER $HOME/.composer

$USER 是您的用户名,$HOME 是您的主目录。

【讨论】:

  • chmod 777 总是一个坏主意。要获取您的用户名,只需使用环境变量$USER。我已经相应地编辑了你的答案。
【解决方案2】:

更改文件夹的组权限

sudo chown -R w3cert /home/w3cert/.composer/cache/repo/https---packagist.org

还有 Files 文件夹

sudo chown -R w3cert /home/w3cert/.composer/cache/files/

我假设 w3cert 是您的用户名,如果没有将第 4 个参数更改为您的用户名。

如果问题仍然存在,请尝试

sudo chown -R w3cert /home/w3cert/.composer

现在,您可能无法创建应用目录,如果发生这种情况,请对您的 html 文件夹或您尝试在其中创建 laravel 项目的文件夹执行相同操作。

【讨论】:

  • 我遇到过几次这种情况,但刚刚意识到这可能是以 root 身份运行 self-update 的结果: $ sudo composer self-update ,这可能是为什么~/.composer 文件夹及其所有内容更改所有者。只需 chown -R 你的 ~/.composer 还给你自己
  • 我确信这个问题在我做sudo composer self-update之后就开始产生了
  • 顺便说一句,chown 更改所有者,也更改组,您必须这样做 w3cert:w3cert ([OWNER][:[GROUP]])
  • 这帮助我创建了项目。执行前两个命令后,一切正常。
  • 我去了.composer/ 目录和sudo chown $USER -R /cache 帮助。
【解决方案3】:

使用这个命令:

sudo chown -R $USER ~/.composer/

【讨论】:

    【解决方案4】:

    当你安装作曲家时,很确定你使用了$ sudo 命令,因为~/.composer 文件夹是由根创建的。

    运行这个来解决问题:

    $ sudo chown -R $USER $HOME/.composer
    

    【讨论】:

    • $USER 替换为$USER:$USER 不仅可以修复用户,还可以修复文件夹及其内容的组。
    • sudo chown -R $USER:$USER $HOME/.composer 非法组名
    猜你喜欢
    • 2018-10-11
    • 2020-02-09
    • 2015-01-02
    • 2015-10-21
    • 2020-03-17
    • 2017-03-09
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多