php Compositor: file_put_contents(./ composer.json): falha ao abrir o fluxo: permissão negada



instalar laravel globalmente (4)

Esse pode ser um caso super delicado, mas se você estiver usando o Travis CI e aproveitando o cache, poderá limpar todo o cache e tentar novamente.

Corrigido o meu problema quando eu passava de compilações sudo para não sudo.

https://ffff65535.com

Estou tentando instalar o Prestissimo em um servidor Ubuntu 16.04, mas isso gera um erro:

$ composer global require "hirak/prestissimo:^0.3"
Changed current directory to /home/kramer65/.composer


  [ErrorException]
  file_put_contents(./composer.json): failed to open stream: Permission denied


require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] [<packages>]...

Estou logado como usuário kramer65 , por isso não sei por que ele não pode gravar na minha pasta pessoal. Minha reação normal a uma permission denied é usar o sudo , mas o compositor sempre diz:

Não execute o Composer como root / superusuário! Veja https://getcomposer.org/root para obter detalhes

Alguma idéia de como eu posso resolver isso?


Eu tive esse problema para instalar o laravel / lumen.

Eu posso resolver com o seguinte comando:

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

No meu caso, o .composer era de propriedade do root, então fiz o sudo rm -fr .composer e, em seguida, meu requisito global funcionou.

Esteja avisado! Você não quer usar esse comando se não tiver certeza do que está fazendo.


Para resolver isso, você deve abrir uma janela de terminal e digite este comando:

sudo chown -R user ~/.composer (com o user sendo seu usuário atual, no seu caso, kramer65 )

Depois de executar esse comando, você deverá ter permissão para executar o comando de solicitação global do compositor.

Você também pode precisar remover o arquivo .composer do diretório atual. Para isso, abra uma janela do terminal e digite este comando:

sudo rm -rf .composer