是否有可能防止网站因自动更新而中断?

时间:2017-02-17 作者:Johansson

最近我注意到很多用户的帖子,抱怨他们的网站在将WordPress更新到最新版本后出现问题。

假设我有一个网站,有很多自定义功能和代码,这取决于当前运行的核心。这些功能太多,无法观看,可能有30个或更多,WordPress每隔一段时间就会发布一次更新。

那么,我如何让自动更新保持打开状态,并确保此功能不会破坏我的博客?我知道我可以定期备份,但这并不是真正的救命稻草。

路径注释可能会有所帮助,但在自定义模板上,每次发布更新时都要检查它,这很痛苦。

现在我的选择是什么?是否必须关闭自动更新并手动备份/更新?或者有没有一种方法/插件/等来防止此类事情发生?

5 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

网站就像任何其他软件产品一样,任何更改都需要首先经过QA阶段,无论它看起来多么微不足道。这就是为什么在将登台/开发服务器推送到生产环境之前,您应该始终在登台/开发服务器上测试所有更新的原因。

像往常一样,它归结为一个投资回报率的问题。在修复过程中,简单的博客可能会出现几天的宕机时间,而每小时产生1000美元的网站可能对打嗝的容忍度较低,为避免打嗝而投入的时间是完全值得的。

因此,如果更新会破坏你的网站,那么对你来说到底有多糟糕,这是你的判断。如果你重视你的时间,比如说40美元/小时,网站生成5美元/小时,那么在双月更新版本上有3个小时的QA周期是不值得的(不是官方的,但这是真实的生命周期),尤其是如果你的代码中没有任何坏的黑客,理论上应该是“未来的教授”

SO网友:Vinicius Câmara

我认为您需要在测试和生产环境中安装该网站。在环境测试中首先运行的所有更新代码(WP核心或插件)。如果工作正常,在生产环境中也要这样做。

就是这样,当您的业务需要增长时,您需要新的战略行动来更新受让人的网站!

SO网友:Fayaz

Note: 在详细介绍之前,请注意,不建议live server启用全自动后台更新。唯一推荐的实时服务器自动更新是coreminor 更新。因此,即使您按照以下步骤操作,也最好在wp-config.php WordPress core的自动次要更新文件:

define( \'WP_AUTO_UPDATE_CORE\', \'minor\' );

所有其他更新都应该是有人参与的更新(非自动)。最好(如果可能的话)是首先在开发或登台环境中测试更新,然后将其应用于实时服务器。

因为你的问题是not about turning auto update off, 正如你所说:

如何让自动更新保持打开状态并确保此功能不会破坏我的博客

以下是关于如何实现这一目标的概念:

Step-1: 保留一个始终自动更新的临时服务器。

Step-2: 例如,在与更新相关的动作挂钩上,upgrader_process_complete 操作挂钩,检查它是否位于暂存(通过服务器IP、安装位置等进行标识)服务器上。如果是,则在更新过程完成后,检查错误日志、与实时服务器的交叉引用等。也就是说,通过多种方式检查更新是否破坏了您的网站。如果成功,请在某处保留一个便条,以便实时服务器可以检查它。它可以是对live server的API调用,也可以是具有最新版本号、DB条目的文件-任何可以确定您在临时服务器上拥有更新版本的core、plugin、theme等的内容。

Step-3: 同时,在live server上并没有完全禁用自动更新,而是使用钩子进行过滤,例如automatic_updater_disabled, auto_update_core, auto_update_plugin, auto_update_theme - i、 e.你需要什么都行。这些过滤器挂钩的过滤器功能必须能够检查临时服务器是否在步骤2中成功。如果成功,则允许通过返回值继续更新(true | false (视情况而定)。

Step-4 此外,在暂存中,您可以使用auto_core_update_send_email 钩子,让您自己知道临时服务器中的自动更新进程是否失败。

显然,以上所有步骤都将共同完成任务。我只是循序渐进地解释了一下,以便于理解。此外,为了确保临时服务器正在运行Cron,请在大约10分钟后在临时服务器上设置Cron作业。否则,由于人们没有访问登台服务器,登台将永远不会自动更新。

Note: &实时;临时服务器可以具有完全相同的代码,但是,在您必须确定的代码中,当前正在运行哪个服务器代码,以便您可以在步骤2、3和;4关于暂存和;实时服务器。

了解更多信息WordPress auto updates Here.

SO网友:C C

利用您的IDE(例如PhpStorm),在本地运行您的Web服务器(例如Apache)和PHP,这样您就有了一个测试环境,其中有一个连接到IDE的调试器——让自动更新在那里发生,并执行full regression test.

一旦确信测试套件成功,请同步到生产服务器。作为奖励,考虑将您的站点置于与PhpStorm很好集成的VCS之下;通过这种方式,您可以恢复破坏站点的任何更改(如果需要)。

SO网友:user3799089

您可以在该工具中执行此操作->https://wordpress.org/plugins/stops-core-theme-and-plugin-updates 或编辑wp-config.php 归档并更改该行:

define( \'AUTOMATIC_UPDATER_DISABLED\', true );

如果要保留一些重要更新,还应编辑该行:

define( \'WP_AUTO_UPDATE_CORE\', true );

But remember - disabling updates in Your WordPress is a serious security breach and could cause more serious damage ! ! !

相关推荐