微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Laravel Envoy 部署到具有不同项目根的多个服务器

如何解决使用 Laravel Envoy 部署到具有不同项目根的多个服务器

当使用 Laravel Envoy 部署到多台服务器时,如何指定每台服务器的项目根目录?文档中提供的示例假设项目根目录对于两台服务器来说是相同的路径。

Screenshot

假设 web-1 的项目根目录为 /var/html/wwwweb-2 的项目根目录为 /var/foo/bar。如何在运行时访问不同服务器的项目根目录?

解决方法

可以通过不同的方式使用 Laravel Envoy 来实现您想要实现的目标。例如,根据您的描述,在运行 envoy run deploy 后,您的 Envoy.blade.php 文件中会出现类似以下内容。

@servers(['web-1' => '127.0.0.1','web-2' => '127.0.0.1'])

@setup
    function logMessage($message) {
        return "echo '\033[32m" .$message. "\033[0m';\n";
    }
@endsetup

@story('deploy')
    deploy-web-1
    deploy-web-2
@endstory

@task('deploy-web-1',['on' => ['web-1']])
    cd /Users/Shared
    {{ logMessage('? Task complete for web-1') }}
@endtask

@task('deploy-web-2',['on' => ['web-2']])
    cd /Users/khill
    {{ logMessage('? Task complete for web-2') }}
@endtask
,

你一定要试试这个

$webServerIps = [
'web-1' => 'xxx.xxx.xxx.xxx','web-2' => 'xxx.xxx.xxx.xxx',];

@servers(array_merge($webServerIps,['persistent' => 'xxx.xxx.xxx.xxx','worker' 
=> 'xxx.xxx.xxx.xxx','local' => '127.0.0.1']))

我希望你得到你的解决方案。

您也可以关注此link以获得更多帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。