使用带有版本控制设置的 Pagelime CMS (git)
Posted
技术标签:
【中文标题】使用带有版本控制设置的 Pagelime CMS (git)【英文标题】:Using Pagelime CMS with Version Control set up (git) 【发布时间】:2012-05-07 08:33:04 【问题描述】:我有一个使用版本控制设置的网站。我们使用 Beanstalk 和 git。现在,我刚刚收到一个向他的网站添加 CMS 的请求,这基本上只是向我希望客户能够编辑的任何 div 添加一个“cms”类。
对于我们的 CMS,我们使用 Pagelime,这是一个非常轻量级的 CMS。但是客户端会通过自己的登录名进行更改,并且会自动通过 FTP 实时上传这些更改。
这将如何与我的版本控制设置一起使用?如果客户端进入并使用 CMS 添加新内容,则该网站存储库中的文件将过时。
谢谢!
【问题讨论】:
【参考方案1】:我们的 S/FTP 部署会自动将文件复制到您的远程服务器,但不会保留指向 Beanstalk 上托管的 git 存储库的链接。相反,您可以通过将 Beanstalk 存储库克隆到远程服务器来进行部署,然后每次部署时,您将从服务器上的该存储库中发出“git pull”以从 Beanstalk 获取任何更改。
为了补偿 Pagelime 所做的更改,您需要在拉取之前和之后执行几个额外步骤:
1) 通过发出命令提交 pagelime 所做的任何更改
git commit -am "commit pagelime changes"
2) 从 Beanstalk 拉取更改到服务器
git pull origin master
3) 将 Pagelime 更改推送到 Beanstalk
git push master
这是最简单的工作流程,不考虑 Pagelime 更改与您在开发环境中做出并提交到 Beanstalk 的更改之间无法自动解决的冲突。
使用首选脚本语言(ruby、python、php)配置和/或编写此工作流程后,您可以开始使用 Beanstalk 的 SSH 部署而不是 S/FTP 部署。然后,Beanstalk 可以在您每次运行部署时自动登录到您的服务器和您的脚本或命令。
【讨论】:
【参考方案2】:你在使用 PHP 吗?您可以使用 Pagelime FTP-XML 发布系统,然后使用此 GIST 中的代码:https://gist.github.com/945294
它将设置 Pagelime 以使用 XML 将内容推送到您的客户端站点,而不是通过重写源代码。然后,您使用 PHP(或任何其他语言)将内容拉入您的页面。
一切仍然托管在您的 FTP 上,但您的源代码永远不会被触及!
请确保永远不要删除“cms-assets”文件夹,因为这是 Pagelime 上传的 XML、图像和文档。
希望这是有道理的!
【讨论】:
以上是关于使用带有版本控制设置的 Pagelime CMS (git)的主要内容,如果未能解决你的问题,请参考以下文章
Cuppa CMS 访问控制错误漏洞(CVE-2022-25401)