我在 Heroku 上安装了 wordpress,我可以安装插件和更新。我的问题是,如果服务器上的某些文件发生更改,我如何确保它被提交给我的应用程序的 heroku git repo?
例如,wordpress 发布更新。我在管理员中单击更新 wordpress。所有更新的文件都在服务器上更改。如果我从 heroku 克隆 repo,我会有新安装的 wordpress 版本吗?
Heroku 文件系统是临时的,也就是说,当测功机由于某种原因重新启动时,本地存储的文件将丢失。测功机无权访问 Git 存储库。它们存储在一个 slug 中,这实际上是一个 zip 文件的美名。这是一项安全功能:如果有人猜到密码并获得了对文件系统的访问权限,他们将不得不在应用程序重新启动时重新破解该应用程序。允许某人从网络更新您的版本控制是一个非常糟糕的想法。
因此,即使 Wordpress 运行更新并且看似成功,它也会执行以下一项或两项操作:
这可能会弄乱您的整个安装,因为代码和数据将不同步。
有两种方法可以在 Heroku 上运行的 Wordpress 上安装东西:
选项 2 也可能很危险,因为它实际上会在应用程序运行时弄乱您的生产数据库。这意味着您应该降低生产版本以进行维护,或者将其设置为只读。记住也要拍摄数据库快照。
我使用选项 1 来做到这一点。使用 git 只需在每次提交后将更改推送到您的 heroku 远程,如下所示:
git push heroku branchinwhichyouareworking
这样,您的更改将提交到您的应用程序的 git 存储库。请记住,如果您推送到 heroku 的不是主分支,则必须使用以下语法:
git push heroku branchinwhichyouareworking:master
更多信息在这里。