Размещение приложения Symfony 4 с EasyDeployBundle на сервере без / usr / local / bin / composer - PullRequest
0 голосов
/ 08 апреля 2019

Для приложения Symfony 4 я выбрал тарифный план Web Cloud у хостинг-провайдера OVH .

Для развертывания я решил использовать 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('git@github.com: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 в другом каталоге?

1 Ответ

0 голосов
/ 08 апреля 2019

Я действительно должен прочитать руководства, особенно когда я связываю их в своем вопросе.

Есть метод remoteComposerBinaryPath, который принимает пользовательский путь к composer.Я изменил метод configure следующим образом:

public function configure()
{
    return $this->getConfigBuilder()
        ->server('ovh')
        ->deployDir('directory/path/at/server')
        ->repositoryUrl('git@github.com:foo/bar.git')
        ->repositoryBranch('master')
        <strong>->remoteComposerBinaryPath('composer.phar')</strong>
    ;
}

На сервере я создал .bashrc в своей домашней папке и добавил строку:

export PATH=$PATH:/home/foobar

и теперь развертываниепреодолевает это препятствие.

Теперь у меня есть другая проблема, но, по крайней мере, эта проблема решена, и, возможно, ответ может помочь другим людям.

...