0

我在 Heroku 上安装了 wordpress,我可以安装插件和更新。我的问题是,如果服务器上的某些文件发生更改,我如何确保它被提交给我的应用程序的 heroku git repo?

例如,wordpress 发布更新。我在管理员中单击更新 wordpress。所有更新的文件都在服务器上更改。如果我从 heroku 克隆 repo,我会有新安装的 wordpress 版本吗?

4

2 回答 2

3

Heroku 文件系统是临时的,也就是说,当测功机由于某种原因重新启动时,本地存储的文件将丢失。测功机无权访问 Git 存储库。它们存储在一个 slug 中,这实际上是一个 zip 文件的美名。这是一项安全功能:如果有人猜到密码并获得了对文件系统的访问权限,他们将不得不在应用程序重新启动时重新破解该应用程序。允许某人从网络更新您的版本控制是一个非常糟糕的想法

因此,即使 Wordpress 运行更新并且看似成功,它也会执行以下一项或两项操作:

  1. 将文件写入文件系统以在下次重新启动时丢失
  2. 写入数据库不会丢失

这可能会弄乱您的整个安装,因为代码和数据将不同步。

有两种方法可以在 Heroku 上运行的 Wordpress 上安装东西:

  1. 将东西解压到合适的位置,然后将它们推送到 Git 中的 Heroku。
  2. 针对生产数据库在本地运行您的 Wordpress 实例,并将更改推送到 Heroku。

选项 2 也可能很危险,因为它实际上会在应用程序运行时弄乱您的生产数据库。这意味着您应该降低生产版本以进行维护,或者将其设置为只读。记住也要拍摄数据库快照。

于 2013-03-13T14:03:54.503 回答
0

我使用选项 1 来做到这一点。使用 git 只需在每次提交后将更改推送到您的 heroku 远程,如下所示:

git push heroku branchinwhichyouareworking

这样,您的更改将提交到您的应用程序的 git 存储库。请记住,如果您推送到 heroku 的不是主分支,则必须使用以下语法:

git push heroku branchinwhichyouareworking:master

更多信息在这里

于 2013-10-21T09:52:07.457 回答