Хостинг приложения Symfony 4 с EasyDeployBundle на сервере без /usr/local/bin/composer

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

Для развертывания я решил использовать 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

все идет нормально, но когда я на самом деле пытаюсь развернуть, я получаю следующую ошибку:

The command "ssh ovh 'which /usr/local/bin/composer'" failed.

Проблема в том, что у меня нет прав на запись в каталог /usr/local/bin/ на сервере. composer.phar находится в моем домашнем каталоге, и я не могу переместить его в указанное место назначения.

Есть ли возможность указать EasyDeployBundle искать composer в другом каталоге?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
462
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Существует метод 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

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

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

Другие вопросы по теме