使用基于文件的CMS将dev / production与git同步

时间:2014-05-25 00:24:05

标签: php git laravel content-management-system

我正在尝试为OctoberCMS找到一个很好的开发工作流程,这是一个用Laravel编写的基于文件的CMS。

我已将其设置为通过以下方式进行部署:

git push live master

然而,在OctoberCMS中,我需要同步"直播"更改回我的本地开发框(因为每次通过CMS编辑内容时,它都会更改文件)。目前我没办法" git pull"来自实时服务器。

我的接收后文件如下所示:

!/bin/sh
git --work-tree=/var/www/mysite.com --git-dir=/var/repo/mysite.git checkout -f

我目前的设置基于这篇Digital Ocean文章。

是否有一种简单的方法可以修改它,以便我可以从实时服务器同步更改?

2 个答案:

答案 0 :(得分:2)

我们目前正在评估october cms的多实例设置。将一个实例作为专用编辑器实例运行。

  1. 编辑器实例中的更改 - 目前 - 手动推送到我们的git repo" git-cms"的编辑器分支。这个想法是通过使用cronjob或文件系统观察器来自动执行此操作。

  2. 有一个专门的手动过程,我们将编辑器分支合并到git-cms的主分支中。在这里,我们还可以注入css / js / img文件等共享资源。

  3. 基于git-cms master分支,我们为测试,制作和编辑器创建新实例(目前使用docker)。

  4. 在图表中,我们的数据流看起来像

    editor -> git:editor -> git:master -> editor, test, production

    了解我们在除了编辑器之外的任何实例中明确拒绝访问Web服务器级别的后端,这一点非常重要。这应该有助于安全,但主要是确保我们有清晰的数据流。

    到目前为止,最明显的限制是,当实例化编辑器的新实例时,在更新过程运行时编辑器中所做的更改可能会丢失。这对我们来说不是问题,因为我们小到可以手动同步。它可能无法很好地扩展到多个编辑器和/或繁重的编辑。它还引入了额外的更新延迟。

答案 1 :(得分:0)

我刚刚启动了OctoberCMS项目,我们已决定gitignore pages目录。这是我们的用户唯一想要影响的目录。

我已将以下内容添加到根.gitignore文件中。

/themes/**/pages