Php 使用基于文件的CMS将开发/生产与git同步

Php 使用基于文件的CMS将开发/生产与git同步,php,git,laravel,content-management-system,Php,Git,Laravel,Content Management System,我正试图为OctoberCMS找到一个好的开发工作流程,这是一个用Laravel编写的基于文件的CMS 我已将其设置为通过以下方式部署: git push live master 然而,使用OctoberCMS,我需要将“实时”更改与我的本地开发框同步(因为每次通过CMS编辑内容时,它都会更改一个文件)。目前,我没有办法从实时服务器“git pull” 我的post接收文件如下所示: !/bin/sh git --work-tree=/var/www/mysite.com --git-dir=

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

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

git push live master
然而,使用OctoberCMS,我需要将“实时”更改与我的本地开发框同步(因为每次通过CMS编辑内容时,它都会更改一个文件)。目前,我没有办法从实时服务器“git pull”

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

!/bin/sh
git --work-tree=/var/www/mysite.com --git-dir=/var/repo/mysite.git checkout -f
我当前的设置基于本文


是否有一种简单的方法可以修改它,以便我可以从live server同步更改?

我刚刚启动了一个OctoberCMS项目,我们决定忽略pages目录。这是我们的用户打算影响的唯一目录

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

/themes/**/pages

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

  • 目前,编辑器实例中的更改被手动推送到git repo“git cms”的编辑器分支。我们的想法是稍后通过使用cronjob或文件系统监视程序来实现自动化

  • 有一个专门的手动过程,我们将编辑器分支合并到GitCMS的主分支中。在这里,我们还可以注入诸如css/js/img文件之类的共享资产

  • 基于GitCMS主分支,我们为测试、生产和编辑器创建了新实例(目前使用docker)

  • 在图表中,我们的数据流如下所示

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

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


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

    我不熟悉OctoberCMS以及它保存文件更改的方式,但它听起来像是数据库中通常存在的部分。如果是这样的话,听起来您想要做的(基本上)是在文件更改时自动提交到“活动”分支。到目前为止听起来是对的?是的,这是正确的-文件得到更新,而不是数据库。自动提交听起来是一种可能的方法,我会在谷歌上搜索一下。这可能值得在十月的CMS论坛上询问。自动提交似乎不是你应该做的事情。如果可能的话,我建议采取文件类似于资产的方式。您是否可以创建一个目录,将这些修改过的文件放在其中,或者它们分散在整个应用程序结构中?如果你可以在一个地方找到它们,称之为“/文件”,你可以创建一个符号链接并将它们存储在NFS上,或者查看云驱动器或类似S3的东西。。。我尝试了自动提交,但很快就被缓存文件和其他东西弄得一团糟。我认为通过同步内容文件夹,您已经找到了正确的方法。但有时插件会由用户从后端更新,从而更改插件文件,那么您会怎么做???很抱歉,我在4年前仅短暂使用过OctoboerCMS,此后就没有使用过它。祝你的答案好运!