我正在创建一个php应用程序-该应用程序将有两种类型的更新-
(a) 应用程序本身需要定期更新——管理应用程序的用户将收到更新通知,他可以初始化更新。
(b) 最终用户可以上传自己的文件(如主题的自定义css/js文件),以便使用他的自定义设计来渲染php应用程序。用户还可以将自己的文本内容添加到应用
现在,我想将这个应用程序部署到云提供商上——最好使用像亚马逊弹性豆茎、PHP Fog或Red Hat Open Shift这样的PaaS——我感到困惑的是——
(1) 据我所知,要部署php应用程序的初始版本,我首先必须创建应用程序的本地安装,正确配置它,然后将此配置版本部署到云提供商。但是参考上面的第1点,我是否必须初始化本地安装上的每个更新,然后将新版本上传到PaaS平台?
(2) 现在,对于用户对已经在云上运行的应用程序版本所做的更改,我如何确保他对应用程序所做的任何更改(无论是存储在数据库中的更改还是他上传的文件)保持不变?如果我只是上传我在本地的版本(我通过定期更新进行了升级),那么我将丢失工作人员在上一版本的云版本上所做的文件/数据库更改?如何保持这些文件和数据库更改的完整性?
我能想到的一件事是,使用我想用于云版本的数据库,甚至用于应用程序的本地版本——这样,即使用户进行了更改(我指的是对数据库的更改)——即使我将新版本上传到云,对数据库的改变也保持不变。。。现在我只需要考虑用户上传的文件——即使我在这方面是正确的,我该如何保存这些文件?如果我不正确,如何在数据库和文件中保留最终用户所做的更改?我如何做到这一点并升级我的php应用程序。
我知道这是一个老问题,但我会提出一些建议:
1.)是的,根据您选择的PaaS,您需要从本地工作站启动所有更新,很可能使用git。
2.)如果用户对应用程序(代码)进行了更改,那么您需要允许他们访问git或您正在使用的任何vcs。或者,你只需要使用SFTP或SCP来上传文件,每个人都基于这个概念工作。
提供关于您所谈论的应用程序的确切类型的更具体的信息可能会有所帮助。我不确定你是在说让你的用户更改运行应用程序的代码,还是让他们更新内容,比如使用drupal/wordpress。