【问题标题】:Deploy production Laravel app Capistrano environment symlinks部署生产 Laravel 应用 Capistrano 环境符号链接
【发布时间】:2021-04-08 11:32:56
【问题描述】:

我已经使用 Capistrano 部署了一个 Rails 应用程序,在那里我学到了很多关于 Capistrano 过程的知识。为 .env 文件设置符号链接时,使用 Capistrano 部署 Laravel 有点困难。

部署在 Centos 8 上完成,但我无法正确设置最终的 .env 文件。我对 Laravel 有点陌生,所以对生产设置有点不确定。

我需要设置一个符号链接还是只在 git 中有一个 .env.php 文件?我宁愿在服务器中保留一个文件,而不是在 git 中保留这些详细信息。

我已尝试创建符号链接

set :linked_files, "shared/config/.env"

并手动创建链接到

after :updated, :build do
  #execute :ln, "-sf #{shared_path}/config/.env #{deploy_to}/current/.env" 

但我觉得我在这里走错了方向。

我认为目的是将配置文件保存在 app/shared/config/.env 或 .env.php 中

但是在 app/current/.env 目录中设置指向 shared/config/.env 的符号链接让我很头疼。将 env 文件呈现给 Laravel 的最佳方式是什么?

谢谢

【问题讨论】:

  • 为什么不使用 deployer 它是一个纯 php 代码,并且已经有一个 recipe 可用于 laravel
  • 这是我正在尝试的一个不错的选择。谢谢你。也许这将是一个很好的答案而不是评论?

标签: php laravel deployment rubygems capistrano


【解决方案1】:

我使用deployer 进行部署,您所要做的就是配置 ssh 并将 ssh 密钥添加到您的服务器以自动进行身份验证。然后更改存储库 url 和主机名

laravel 配方: https://github.com/deployphp/deployer/blob/master/recipe/laravel.php

回购网址:

set('repository', 'git@github.com:user/myproject.git');

主机名:

host('mydomain.com')->set('deploy_path', '/var/www/html');

最后部署:

dep deploy

您可以定义自定义任务,例如 gulpwebpack

 task('build:gulp', function () {
 }

阅读文档here

附:确保服务器有权访问存储库:)

【讨论】:

  • 一旦我习惯了与 Capistrano 略有不同的配置,这很好,也很容易设置。实际上很干净而且经过深思熟虑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多