拉拉维尔,作曲家,Git 工作流



我是Laravel,Laravel Homestead,Composer以及与将更改提交到Git存储库然后将这些更改拉到开发/生产服务器相关的开发工作流程的新手。 到目前为止,经过多次试验和错误,我已经设法:

  1. 与流浪者一起建立我当地的家园环境。
  2. 创建新的 Laravel 应用程序
  3. 运行编辑器以获取依赖项
  4. 在本地访问应用程序。
  5. 为我的应用程序创建 Git 存储库,提交更改,然后推送到源主分支。
  6. 在我的远程服务器(1和1上的共享主机)上克隆存储库并拉入更改。

很长一段时间,我不明白为什么当我将更改拉到远程站点时,我会收到PHP错误,但本地站点运行良好。 归根结底,Laravel .gitignore 文件忽略了 /vendor 目录,而 Laravel 需要该目录才能运行。 一些Google-fu搜索表明,有些人只是在他们的生产服务器上运行composer update/(composer install?)。 (我无法访问共享主机服务器上的 Composer,因此无法执行此操作)

我向社区提出的问题 - 您认为适合我给定情况的最佳工作流程是什么? 从 .gitignore 文件中删除 /vendor 目录? 别的?

非常感谢您的回复。

看起来您正在使用 GIT 作为部署工具,我认为这不是一个好主意。

作曲家更新/安装仅用于管理依赖项。某些服务器不允许您从控制台运行脚本,或者运行它们很复杂。在这种情况下,您可以在部署之前在本地运行 composer,并将代码发送到包含所有依赖项的服务器。

以下是设计工作流时应牢记的一些事项:

  1. 使用 GIT 保留源代码和配置
  2. 使用编辑器管理依赖项(下载的依赖项不应在 GIT 存储库中进行版本控制。供应商目录及其连接也是一个依赖项)
  3. 对于部署,
  4. 请使用部署工具之一,例如 https://github.com/rocketeers/rocketeer

使用 -f 标志在使用 git add 时强制包含供应商目录。

你在这里走在正确的轨道上,许多人会做你正在做的事情。

当您进行多个服务器部署(负载平衡、自动扩展)时,真正的麻烦就来了。

通常,我所看到的是一个 shell 脚本,只要发生需要运行这些命令的事情,您就会包含并运行该脚本。

此 shell 脚本内部是您希望在每次启动新服务器实例时完成的命令。

您也可以使用适用于单个服务器环境的多种工具执行此操作。

我可能会研究像Travis CI,Jenkins等持续集成工具。如果这是你的一个主要头痛。

否则,可能会矫枉过正。然后继续做你正在做的事情。

将供应商目录添加到 Git 存储库违反最佳实践。

这也是一个涉及网络钩子的不错选择:http://losstopschade.de/post/96967373358

查看将 Laravel Webapp 部署到 1and1

相关内容

  • 没有找到相关文章

最新更新