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

标签 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文章。

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

最佳答案

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

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

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

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

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

编辑器 -> git:editor -> git:master -> 编辑器、测试、生产

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

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

关于php - 使用基于文件的 CMS 将开发/生产与 git 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23850900/

相关文章:

php - 数组元素中的未定义索引

php - 如何使用 .htaccess 重写 URL

javascript - 使用 laravel 和 ajax 部分页面重新加载

php - 插入数据库表时发出通知声音

php - mysql 和 codeigniter 更新多行

javascript - PHP 中的 JQuery 表

git - Bitbucket Pipeline - 使用 SSH key pull/推代码,无需拒绝权限

git - 如何恢复最初的 git 提交?

git - 如何解决 Git 报告无效的 sha1 指针 0000000000000000000000000000000000000000?

laravel - Vuetify Treeview - 异步加载子项时出错