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


127

我创建了一个新的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/文件夹中没有写权限
Amir Bar

2
如果您sudo composer self-update在Linux上运行,也可能会发生这种情况,因为此~/.composer目录之后将归目录所有root
Caw

Answers:


214

更改文件夹的组权限

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

和文件文件夹

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

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

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

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

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

希望这可以帮助。


14
我已经遇到过几次了,但是只是意识到这可能是由于以root身份运行self-update造成的:$ sudo composer self-update,这可能是〜/ .composer文件夹以及所有其内容更改所有者。只是绞死-R您的〜/ .composer回到自己
andkrup

10
我确定这个问题在我做完之后就开始产生sudo composer self-update
Pratik

4
顺便说一句,chown更改所有者,也要更改组,您必须执行w3cert:w3cert[OWNER][:[GROUP]]
Pratik

这有助于我创建项目。执行前两个命令后,一切正常。
rahul

我去了.composer/目录,sudo chown $USER -R /cache这有所帮助。
saggzz

270

当您安装composer时,一定要使用$ sudo命令,因为该~/.composer文件夹是由根创建的。

运行此命令可解决此问题:

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

53
更换$USER$USER:$USER修复,不仅用户,而且该组的文件夹及其内容。
caw

4

向用户授予.composer的完全访问权限。

sudo chown -R 'user-name' /home/'user-name'/.composer

要么

sudo chmod 777 -R /home/'user-name'/.composer

user-name 是您的系统用户名。

在终端中输入用户名键入“ whoami”:

在此处输入图片说明


3

我今天有同样的问题。试试吧!

sudo chown -R  [yourgroup]  /home/[youruser]/.composer/cache/repo/https---packagist.org/


sudo chown -R  [yourgroup]   /home/[youruser]/.composer/cache/files/

1

使用以下命令:

sudo chown -R $USER ~/.composer/

1

我最近遇到了类似的问题,需要更改供应商文件夹的权限

通过运行以下命令:

  1. php artisan cache:clear
  2. chmod -R 777 storage vendor
  3. composer dump-autoload

我需要提供打开和写入供应商文件所需的所有权限才能解决此问题


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.