对于Symfony 4应用程序,我从托管服务提供商OVH中选择了一个Web云计划。
对于部署,我决定使用看起来非常有前景的EasyDeployBundle。这是我的配置文件:
<?php
use EasyCorp\Bundle\EasyDeployBundle\Deployer\DefaultDeployer;
return new class extends DefaultDeployer
{
public function configure()
{
return $this->getConfigBuilder()
->server('ovh')
->deployDir('directory/path/at/server')
->repositoryUrl('[email protected]:foo/bar.git')
->repositoryBranch('master')
;
}
}
我有.ssh/config
文件,其中包含以下条目:
Host ovh
Hostname sshcloud.foobar.hosting.ovh.net
Port 12345
User foobar
注意:所有值都是假人,仅用于说明目的。
当我跑:
php bin/console deploy --dry-run -v
一切顺利,但当我实际尝试部署时,我收到以下错误:
命令“ssh ovh”/ usr / local / bin / composer'“失败。
问题是我对服务器上的/usr/local/bin/
目录没有写访问权限。 composer.phar
在我的主目录中,我无法将其移动到配置目的地。
有没有可能告诉EasyDeployBundle
在另一个目录中寻找composer
?
我应该阅读这些手册,特别是当我在我的问题中链接它们时。
有一种方法remoteComposerBinaryPath
接受composer
的自定义路径。我修改了方法configure
像这样:
public function configure()
{
return $this->getConfigBuilder()
->server('ovh')
->deployDir('directory/path/at/server')
->repositoryUrl('[email protected]:foo/bar.git')
->repositoryBranch('master')
->remoteComposerBinaryPath('composer.phar')
;
}
在服务器上,我在我的主文件夹中创建了.bashrc
并添加了以下行:
export PATH=$PATH:/home/foobar
现在部署正在通过这个障碍。
我现在有另一个问题,但至少这个问题已经解决,也许答案也可以帮助其他人。