ChatGPT解决这个技术问题 Extra ChatGPT

无法创建缓存目录.. 或目录不可写。在 Laravel 中进行无缓存

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

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

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

J
Jim M

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

运行这个来解决这个问题:

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

$USER 替换为 $USER:$USER 不仅可以修复用户,还可以修复文件夹组及其内容。
sudo chown -R $USER:$USER $HOME/.composer 非法组名
N
Nesar

更改文件夹的组权限

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 有帮助。
L
LobsterBaz

更改 .composer 目录的所有权:

sudo chown -R $USER $HOME/.composer

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


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

使用这个命令:

sudo chown -R $USER ~/.composer/

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅