Heroku上的WordPress更新
问题描述:
我在Heroku上安装了wordpress,我可以安装插件和更新。 我的问题是,如果服务器上的某些文件发生变化,我如何确保它能够提交给我的应用程序的heroku git repo?Heroku上的WordPress更新
示例,wordpress发布更新。 我点击管理员中的更新wordpress。 所有更新的文件都在服务器上更改。 如果我从heroku复制回购,我会有新安装的wordpress版本吗?
答
Heroku文件系统是Ephemeral这就是说当dyno由于某种原因重新启动时,本地存储的文件将会丢失。 dynos无权访问Git存储库。它们存储在一个实际上是zip文件的名字中。这是一项安全功能:如果有人猜测密码并获得对文件系统的访问权限,那么在重新启动应用程序时,他们将不得不重新采用该应用程序。允许有人从网络更新您的版本控制是一个真的很棒的想法。
所以,即使WordPress的运行更新,看似成功,它的一个或两个以下:
- 文件写入到文件系统在下次重启
- 丢失写入到数据库中不丢失
这可能会搞乱你的整个安装,因为代码和数据将不同步。
上有在Heroku上运行的WordPress安装的东西的方式有两种:
- 解压的东西在他们正当的地方,将他们推向Heroku的Git中。
- 在本地运行您的Wordpress实例,针对生产数据库,并将更改推送到Heroku。
选项2也可能是危险的,因为它在应用程序运行时实际上与生产数据库有关。这意味着您应该停止生产版本的维护或将其转为只读。记得也要记录数据库快照。
答
我使用选项1来做到这一点。使用Git只需按动更改您的Heroku之后远程每次提交如下:
git push heroku branchinwhichyouareworking
这样你的更改都将致力于为您的应用程序的混帐回购协议。 请记住,如果它不是主分支,你正在推动一个Heroku的,您必须使用此语法:
git push heroku branchinwhichyouareworking:master
更多信息here。