Quero usar o script .sh para a implantação do meu aplicativo. Esse script está no meu servidor doméstico (Ubuntu 15.10 Server), marcado como executável. O acesso a esse script é feito através do ssh, usando este tutorial, eu configurei o login do ssh, que executa esse script. Então, basicamente, eu apenas chamo ssh deployer@XXX.com someArguments
e ele executa meu script com someArguments
como parâmetros. O usuário deployer
tem uid = 0, então é basicamente root
(isso será alterado no futuro, eu o configurei apenas para eliminar problemas de permissões até que funcione bem).
E aqui é onde as coisas ficam complicadas. O script relata /usr/bin/env: php: No such file or directory
no comando /bin/composer install
(usando o Composer ). As coisas são mais estranhas quanto mais eu olho nesse script. Antes dessa linha, também é chamado /bin/composer self-update
e /bin/composer -V
, que funciona corretamente e exibe a saída correta.
Eu verifiquei as seguintes coisas:
/usr/bin/env php -v
exibe a versão correta do PHP (igual a/usr/bin/php -v
)whereis php
exibephp: /usr/bin/php /usr/local/bin/php /usr/share/man/man1/php.1.gz
php5-cli
pacote está instalado e a versão mais recente$PATH
contém/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
which env
exibe/usr/bin/env
Eu também tentei seguir as seguintes coisas:
- executar o script diretamente como
bash deploy.sh
root (já que é o mesmo usuário) - funciona perfeitamente sem erros - executando comandos com falha diretamente - também perfeitamente sem erros
Portanto, isso me parece um caso muito específico, por que esse comando não funciona. Passei 12 horas depurando-o e estou sem ideias aqui.
PS: Erro semelhante ( /usr/bin/env: node: No such file or directory
) ocorre quando existe bower install
(usando o Bower ), mas não durante a execução npm install
(usando o NPM ).
sh deploy
e bash deploy
tanto dá mesmos resultados
/usr/bin/env > environment.txt
sh deploy
vez debash deploy
(talvez algum basismo). Como você checou as " seguintes coisas "? Eu recomendo verificá-los no script, para que você possa descobrir eventuais substituições e saneamentos de envs.