在没有/ usr / local / bin / composer的服务器上使用EasyDeployBundle托管Symfony 4应用程序

问题描述 投票:0回答:1

对于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

symfony deployment symfony4 ovh
1个回答
0
投票

我应该阅读这些手册,特别是当我在我的问题中链接它们时。

有一种方法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

现在部署正在通过这个障碍。

我现在有另一个问题,但至少这个问题已经解决,也许答案也可以帮助其他人。

© www.soinside.com 2019 - 2024. All rights reserved.