Toda vez que executo o compositor (por exemplo, sudo composer install, sudo composer self-update
etc.), preciso executar isso com o sudo, pois o proprietário do arquivo é root.
No entanto, toda vez que eu uso o compositor com sudo root possui a pasta do fornecedor e, em seguida, tenho que alterar o proprietário dessa pasta / privilégios de raiz para www-data.
Qual é a melhor maneira de corrigir isso para que eu não precise executar o sudo toda vez?
Alterar o proprietário de /usr/local/bin/composer
root para www-data?
Essa é a maneira ideal de lidar com isso para evitar ter que mudar de propriedade e atribuir permissão toda vez que uso o sudo composer install
?
Editar:
as permissões para o compositor estão atualmente -rwxr-xr-x
. E tentei mudar o proprietário de /usr/local/bin/composer
para www-data:www-data
com permissões definidas para 775 e ainda não consigo executar o compositor sem executar sudo
.
composer self-update
sem usar o sudo. Preciso usar o 775?composer update
e isso também não funciona com essas permissões. Eu ainda tenho que usar o sudo primeiro. Este é o erro que recebofile_put_contents(/home/lamp/.composer/cache/repo/https---packagist.org/packages.json): failed to open stream: Permission denied
chown -R lamp:lamp /home/lamp/.composer
)Estou lidando com esse problema há semanas.
Eu acho que a solução é executar a auto-atualização do compositor com o -H
Antes de fazer isso, remova os diretórios .composer na raiz e o diretório inicial do usuário que você deseja executar o compositor.
A execução da atualização automática do sudo compositor sem o sinalizador -H criará ~ / .composer pertencente ao root e evitará que outros comandos do compositor tenham erros de permissão.
Na minha opinião, chamar a atualização automática do sudo composer não deve criar arquivos pertencentes à raiz no diretório inicial dos usuários atuais.
Observe que se você seguir estas instruções no Ubuntu 14.04, o compositor colocará o cache em:
Ao invés de:
Isso ocorre devido à variável de ambiente XDG_RUNTIME_DIR definida no Ubuntu 14.04, mas parece não estar definida no Ubuntu 12.04
Uma discussão relacionada aqui
fonte
$ sudo -H composer self-update $ You are already using composer version 1.3.0 (stable channel).
~/.composer
pasta parece resolver o problema.