O usuário www-data não pode usar gemas Ruby

O usuário www-data não pode usar gemas Ruby

Estou tentando executar um servidor virtual usando Vagrant e VirtualBox. Para o VirtualBox que estou usando, scotch/boxque contém todo o material básico para rodar um servidor Ubuntu com alguns componentes (apache, mysql, php etc.) mais no scotchbox pode ser encontradoaqui.

Agora coloquei o servidor em funcionamento (executando um aplicativo Yii2), mas assim que o aplicativo é iniciado recebo uma mensagem de erro do Yii sh: 1: sass: not founde por causa disso um arquivo SASS não pôde ser convertido para CSS. Então voltei ao meu servidor para verificar se o sass estava instalado, não estava então executei o comando gem install sasse depois o sass foi instalado. gem list sass -iretornou verdadeiro.

Mas ainda assim o problema persistia, não foi possível encontrar atrevimento. Voltei para o meu console e é claro que o Apache é executado pelo usuário www-data e entrei no ssh com o usuário vagrant. E é aqui que fica um pouco vago para mim. Nas variáveis ​​de ambiente do serviço apache adicionei os caminhos tanto para ruby ​​quanto para gems. Mas ainda assim o usuário www-data não consegue encontrar o comando sass ou o comando gem ou mesmo o comando ruby.

Também tentei mudar o proprietário do serviço Apache de www-data para o usuário vagrant, mas isso ajudou um pouco, mas não é a solução que quero aceitar. Eu quero uma solução para que o serviço Apache permaneça propriedade do usuário www-data e não de um usuário root como o vagrant.

Se mais dados precisarem ser adicionados, por favor me avise.

Responder1

Como você está iniciando seu aplicativo Yii? Parece que você está iniciando através da linha de comando. Qualquer usuário que você esteja usando para iniciar não vê o aplicativo atrevido em seus caminhos. Você tem poucas escolhas.

  • Atualize o PATH do usuário para incluir /usr/local/bin (ou onde quer que o sass esteja, o que você pode determinar executandowhich sass
  • Crie um link simbólico de /usr/local/bin/sass para um diretório que seu usuário pesquise com sucesso (algo como /bin pode funcionar)

Você poderia colar o comando que está executando quando encontrou esse erro? Se você executar which sassapós a falha do Yii, verá resultados para a localização do script? Você pode confirmar se está tentando executar isso manualmente ou se está acessando uma página através do Apache (nesse ponto, o usuário www-data entraria em ação).

informação relacionada