2014-11-22 175 views
0

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

  1. 设置我的本地Homestead环境与vagrant。
  2. 创建一个新的Laravel应用
  3. 运行作曲到应用程序在本地下载依赖
  4. 访问。
  5. 为我的应用程序创建一个Git存储库,提交更改并推送到原始主分支。
  6. 克隆我的远程服务器(共享主机上的1and1)的存储库和拉变迁论。

很长一段时间,我不明白为什么当我把修改到远程站点,我会得到PHP错误,但本地站点运行得很好。事实上,Laravel .gitignore文件忽略了Laravel需要运行的/vendor目录。一些Google-fu搜索表明有些人在他们的生产服务器上运行了composer update /(composer install?)。 (我没有访问我的共享主机服务器上的作曲家,所以我无法做到这一点)

我对社区的问题 - 你觉得对我的情况最好的工作流程是什么?从.gitignore文件中删除/供应商目录?还有别的吗?

回复非常感谢。

回答

1

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

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

下面是一些设计工作流程时,你应该记住:

  1. 使用git保持源代码和配置
  2. 使用作曲家管理依赖条件(下载依赖should't在GIT存储库中受版本控制。供应商目录及其相关事项也是依赖关系)
  3. 对于部署,使用其中一个部署工具,例如, https://github.com/rocketeers/rocketeer
+0

谢谢你的建议,我会看看火箭人。 – user2710915 2014-11-22 15:45:10

1

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

0

你在这里正确的轨道,许多人会做你在做什么。

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

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

这个shell脚本的内部将是每次启动新服务器实例时要完成的命令。

您也可以在单个服务器环境中使用多种工具来执行此操作。

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

否则,它可能是矫枉过正....然后只是继续做你在做什么。

将vendor目录添加到您的git repo违反了最佳实践。

这也涉及到网络挂接一个不错的选择: http://losstopschade.de/post/96967373358