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 someArgumentse ele executa meu script com someArgumentscomo parâmetros. O usuário deployertem 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 directoryno 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-updatee /bin/composer -V, que funciona corretamente e exibe a saída correta.
Eu verifiquei as seguintes coisas:
/usr/bin/env php -vexibe a versão correta do PHP (igual a/usr/bin/php -v)whereis phpexibephp: /usr/bin/php /usr/local/bin/php /usr/share/man/man1/php.1.gzphp5-clipacote está instalado e a versão mais recente$PATHcontém/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gameswhich envexibe/usr/bin/env
Eu também tentei seguir as seguintes coisas:
- executar o script diretamente como
bash deploy.shroot (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 deploye bash deploytanto dá mesmos resultados
/usr/bin/env > environment.txt

sh deployvez 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.