Php 部署者:';composer安装';-找不到命令
我正在使用deployer在服务器上打包symfony应用程序。在部署期间,我还需要运行composer安装来运行诸如bin/console之类的重要命令。只有这样,部署才能完成。不幸的是,部署失败,并在“composer安装”时中断,并显示错误消息:Php 部署者:';composer安装';-找不到命令,php,deployment,composer-php,php-deployer,Php,Deployment,Composer Php,Php Deployer,我正在使用deployer在服务器上打包symfony应用程序。在部署期间,我还需要运行composer安装来运行诸如bin/console之类的重要命令。只有这样,部署才能完成。不幸的是,部署失败,并在“composer安装”时中断,并显示错误消息: [Deployer\Exception\RuntimeException (127)] The command "cd /usr/home/xxx/public_html/sw6-staging/releases/1.1 &&a
[Deployer\Exception\RuntimeException (127)]
The command "cd /usr/home/xxx/public_html/sw6-staging/releases/1.1 && composer install" failed.
Exit Code: 127 (Command not found)
================
bash: line 1: composer: command not found
这是deploy.php中的任务:
task('sw:deploy', function(){
run('cd {{release_path}} && composer install');
});
task('deploy', [
'deploy:prepare',
'deploy:lock',
'deploy:release',
'deploy:update_code',
'sw:deploy',
])->desc('Deploy your project');
但是,如果我通过CLI直接在服务器上运行命令“composer install”,它将通过。问题是什么?我如何解决
部署器版本6.8。
PHP 7.2版
非常感谢我也有同样的问题。它似乎是通过一个非登录、非交互的shell连接到服务器的,该shell不会加载shell启动文件,如
~/.bash\u profile
->~/.bash\u login
->~/.profile
在我的例子中,.bashrc
具有以下条目:
PATH=“$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH”
但是无论是节点
,还是npm
或composer
都是可访问的,因此显然没有使用此文件。也没有~/.bash_profile
,所以我创建了一个,并在那里添加了路径:
echo "PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH" > ~/.bash_profile
然后我使用source
命令加载~/.bash\u配置文件
,然后调用composer安装
:
任务('sw:build',静态功能(){
运行('source/usr/home/username/.bash\u profile&&cd{{release\u path}&&composer install');
});
我也有同样的问题。它似乎是通过一个非登录、非交互的shell连接到服务器的,该shell不会加载shell启动文件,如~/.bash\u profile
->~/.bash\u login
->~/.profile
在我的例子中,.bashrc
具有以下条目:
PATH=“$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH”
但是无论是节点
,还是npm
或composer
都是可访问的,因此显然没有使用此文件。也没有~/.bash_profile
,所以我创建了一个,并在那里添加了路径:
echo "PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH" > ~/.bash_profile
然后我使用source
命令加载~/.bash\u配置文件
,然后调用composer安装
:
任务('sw:build',静态功能(){
运行('source/usr/home/username/.bash\u profile&&cd{{release\u path}&&composer install');
});
在6.8中,您可以使用“登录shell”(并加载shell启动文件):
host('example.com')
->shellCommand('bash-ls')
example.com:
shell命令:bash-ls
在6.8中,您可以使用“登录shell”(并加载shell启动文件):
host('example.com')
->shellCommand('bash-ls')
example.com:
shell命令:bash-ls