对于 Symfony 4 应用程序,我选择了托管提供商OVH的 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
一切正常,但是当我实际尝试部署时,出现以下错误:
命令“ssh ovh 'which /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
现在部署正在通过这个障碍。
我现在有另一个问题,但至少这个问题已经解决了,也许答案也可以帮助其他人。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句