Impossibile creare la directory della cache .. o la directory non è scrivibile. Procedere senza cache in Laravel


127

Ho creato un nuovo progetto Laravel. Quando vado al terminale per installare le dipendenze composerviene visualizzato il seguente avviso:

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


sembra che il compositore non abbia il permesso di scrittura nella cartella /home/w3cert/.composer/cache/
Amir Bar

2
Questo può accadere anche se esegui sudo composer self-updatesu Linux, poiché la ~/.composerdirectory sarà di proprietà di root, in seguito.
caw

Risposte:


214

Modifica l'autorizzazione del gruppo per la cartella

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

e anche la cartella File

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

Suppongo che w3cert sia il tuo nome utente, in caso contrario modifica il quarto parametro nel tuo nome utente.

Se il problema persiste, prova

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

Ora, c'è la possibilità che non sarai in grado di creare la tua directory dell'app, se ciò accade, fai lo stesso per la tua cartella html o la cartella in cui stai cercando di creare il tuo progetto laravel.

Spero che questo ti aiuti.


14
L'ho riscontrato un paio di volte, ma mi sono appena reso conto che potrebbe essere una conseguenza dell'esecuzione dell'aggiornamento automatico come root: $ sudo composer self-update, che potrebbe essere stata la causa del motivo per cui la cartella ~ / .composer e tutto il suo contenuto cambia proprietario. Chown -R il tuo ~ / .composer di nuovo a te stesso
ekrup

10
Sono sicuro che questo problema ha iniziato a generarsi subito dopo che l'ho fatto iosudo composer self-update
Pratik

4
BTW, chown cambia proprietario, anche per cambiare gruppo, devi fare w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Questo mi ha aiutato a creare il progetto. Dopo aver eseguito i primi due comandi, tutto è andato bene.
rahul

Sono andato alla .composer/directory e sudo chown $USER -R /cachequesto mi ha aiutato.
saggzz

271

Quando hai installato Composer, sono abbastanza sicuro che hai usato il $ sudocomando per questo motivo la ~/.composercartella è stata creata dalla root.

Esegui questo per risolvere il problema:

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

54
Sostituisci $USERcon $USER:$USERper correggere non solo l'utente ma anche il gruppo della cartella e il suo contenuto.
caw

4

Dare pieno accesso a .composer all'utente.

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

o

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

user-name è il nome utente del sistema.

per ottenere il nome utente digita "whoami" nel terminale:

inserisci qui la descrizione dell'immagine


3

Oggi ho avuto lo stesso problema. Provalo!

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


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

1

Usa questo comando:

sudo chown -R $USER ~/.composer/

1

Recentemente ho avuto un problema simile e avevo bisogno di modificare le autorizzazioni della mia cartella del fornitore

Eseguendo i seguenti comandi:

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

Devo fornire tutte le autorizzazioni necessarie per aprire e scrivere i file del fornitore per risolvere questo problema


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.