symfony - 如何在共享主机上安装 Composer 以便于部署
问题描述
我正在尝试使用 easy deploy 包部署我的 symfony 应用程序,但是在第二步出现错误:
| out :: /usr/bin/git
[OK] git command exists
[localhost] Executing command: cd /Users/marilou/Desktop/Kublay/kublay && which ssh
| out :: /usr/bin/ssh
[OK] ssh command exists
[kublayconc@ssh.cluster028.hosting.ovh.net] Executing command: echo 2021847078
kublayconc@ssh.cluster028.hosting.ovh.net's password:
| out :: 2021847078
[OK] The server allows to login via SSH from the local machine
[kublayconc@ssh.cluster028.hosting.ovh.net] Executing command: which /usr/local/bin/composer
kublayconc@ssh.cluster028.hosting.ovh.net's password:
In Process.php line 254:
[Symfony\Component\Process\Exception\ProcessFailedException]
The command "ssh kublayconc@ssh.cluster028.hosting.ovh.net -p 22 'which /usr/local/bin/composer'" failed.
Exit Code: 1(General error)
Working directory: /Users/marilou/Desktop/Kublay/kublay
Output:
================
Error Output:
================
Exception trace:
at /Users/marilou/Desktop/Kublay/kublay/vendor/symfony/process/Process.php:254
Symfony\Component\Process\Process->mustRun() at /Users/marilou/Desktop/Kublay/kublay/vendor/easycorp/easy-deploy-bundle/src/Task/TaskRunner.php:79
EasyCorp\Bundle\EasyDeployBundle\Task\TaskRunner->doRun() at /Users/marilou/Desktop/Kublay/kublay/vendor/easycorp/easy-deploy-bundle/src/Task/TaskRunner.php:38
EasyCorp\Bundle\EasyDeployBundle\Task\TaskRunner->run() at /Users/marilou/Desktop/Kublay/kublay/vendor/easycorp/easy-deploy-bundle/src/Deployer/AbstractDeployer.php:230
EasyCorp\Bundle\EasyDeployBundle\Deployer\AbstractDeployer->checkRequirements() at /Users/marilou/Desktop/Kublay/kublay/vendor/easycorp/easy-deploy-bundle/src/Deployer/AbstractDeployer.php:143
EasyCorp\Bundle\EasyDeployBundle\Deployer\AbstractDeployer->initialize() at /Users/marilou/Desktop/Kublay/kublay/vendor/easycorp/easy-deploy-bundle/src/Command/DeployCommand.php:78
EasyCorp\Bundle\EasyDeployBundle\Command\DeployCommand->execute() at /Users/marilou/Desktop/Kublay/kublay/vendor/symfony/console/Command/Command.php:255
Symfony\Component\Console\Command\Command->run() at /Users/marilou/Desktop/Kublay/kublay/vendor/symfony/console/Application.php:952
Symfony\Component\Console\Application->doRunCommand() at /Users/marilou/Desktop/Kublay/kublay/vendor/symfony/framework-bundle/Console/Application.php:87
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /Users/marilou/Desktop/Kublay/kublay/vendor/symfony/console/Application.php:273
Symfony\Component\Console\Application->doRun() at /Users/marilou/Desktop/Kublay/kublay/vendor/symfony/framework-bundle/Console/Application.php:73
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /Users/marilou/Desktop/Kublay/kublay/vendor/symfony/console/Application.php:149
Symfony\Component\Console\Application->run() at /Users/marilou/Desktop/Kublay/kublay/bin/console:42
deploy [-c|--configuration CONFIGURATION] [--dry-run] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] [<stage>]
我试图在我的服务器上安装作曲家,但看起来它没有安装在易于部署的地方寻找它
Downloading...
Composer (version 1.9.1) successfully installed to: /home/kublayconc/composer
Use it: php composer
Some settings on your machine may cause stability issues with Composer.
If you encounter issues, try to change the following:
PHP was compiled with --enable-sigchild which can cause issues on some platforms.
Recompile it without this flag if possible, see also:
https://bugs.php.net/bug.php?id=22999
kublayconc@ssh01.cluster028.gra.hosting.ovh.net (php/7.2/production/stable) ~ $ php composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.9.1 2019-11-01 17:20:17
似乎作曲家已很好地安装在服务器上。有什么建议么 ?
解决方案
正如您在问题中提到的,EasyDeployBundle 正在特定路径中寻找作曲家。在 GitHub 上快速搜索会显示设置路径的位置: src/Configuration/DefaultConfiguration.php
private $remoteComposerBinaryPath = '/usr/local/bin/composer';
基本上,您需要做的 - 不幸的是,我不太了解捆绑包,无法具体告诉您如何 - 调用$configuration->remoteComposerBinaryPath($remotePath)
然后将您的作曲家二进制文件的实际位置传递给它$remotePath
,例如/home/kublayconc/composer
.
推荐阅读
- java - 如何处理具有相同xpath的多个对象的动态变化xpath
- kendo-grid - Kendo.Grid 在“创建”操作时不会向控制器发送一些数据
- python - 使用 ib_sync 使用 Python 获取许多实时股票报价
- python-3.x - 如何更改图像中指定像素的颜色?
- sql - 从 SQL Server 到 SAP BW 的数据类型转换
- ios - Firebase 无故注销某些用户
- python - 如何使用此代码仅获取我想移动到新数据框的列?
- r - 有没有办法将多个excel文件读入R,但只能到某个创建日期?(注意:实际的 excel 文件中不存在日期。)
- javascript - 每次我调用它的树枝模板时执行 javascript
- r - R - 满足条件时替换多个字段中的值