安全更新OctoberCMS网站

时间:2017-08-09 17:18:07

标签: php laravel updating octobercms

问题的前提

作为开发人员,我们需要知道客户端使用的软件与我们交付给他们的软件完全相同。我们还需要开发堆栈不是移动目标。为此,软件更新应完全在开发人员的控制之下。

问题

我可以在OctoberCMS中停用所有自动更新(核心,插件,主题)吗?

更新的首选方法

为了避免任何“破坏”的变化,我想通过组合来更新实时(和测试)网站 * git-ftp从开发服务器到测试/生活

* php artisan october:up

详细

https://octobercms.com/docs/plugin/updates中有一节说明,

  

更新流程

     

10月发生以下任何一种情况时,会自动执行更新过程:
  1)当管理员登录后端时   2)使用后端区域中的更新功能更新系统时   3)在应用程序目录的命令行中调用控制台命令php artisan october:up时。

1)和3)没有机会避免可能无意中“破坏”现场网站的变化:

在1)中,每次管理员登录实时站点时,可能会上载并安装可能会中断更改的内容。

在3)中,为更新的插件更新数据库的过程也可能导致更新系统的其他部分 a)打破现场 b)使 live 站点与 development testing 不同步。

同一页面上还有另一部分,

  

重要更新

     

有时,插件需要引入会破坏已经使用该插件的网站的功能。如果version.yaml文件中的更新注释以三个惊叹号(!!!)开头,那么它将被视为重要,并且将要求用户在更新之前进行确认。重要更新评论的一个示例:

     

1.1.0:!!!这是一个包含重大更改的重要更新。

     

当系统检测到重要更新时,它将提供三个选项:

Confirm update
Skip this plugin (once only)
Skip this plugin (always)
     

确认评论会像往常一样更新插件,或者如果评论被跳过则不会更新。

然而,这有两个问题:

1)插件作者必须彻底测试更新,注意“重大更改”,并将!!!添加到版本文件中。

2)更新可能不会在标准意义上“破坏”网站,但它可能会导致不必要的副作用,这可能有效地导致破损。

可以在cms.php配置文件中禁用核心更新:

  

/ *
     | ------------------------------------------------- -------------------------
     |防止应用程序更新
     | ------------------------------------------------- -------------------------
     |
     |如果使用composer或git下载核心文件的更新,请设置此
     |值为'true'以防止更新网关尝试下载
     |这些文件再次作为应用程序更新过程的一部分。插件
     |和主题仍将下载      |
     * /

     

'disableCoreUpdates'=>是的,

但是,如相关评论中所述,“插件和主题仍将被下载”。 我认为这意味着安装了

那么,我可以在OctoberCMS中禁用所有自动更新(核心,插件,主题)吗? 如果没有,是否有另一种方法可以避免这些问题,或者我应该在OctoberCMS github页面上将其作为一个非常需要的功能发布?

即使在开发服务器上,自动更新插件也是一个问题是很有争议的:
在开发网站的同时,突然间它就破了。这是由于开发人员所做的更改,还是后端登录时发生的插件的后台更新而造成的? 这是否意味着在开发网站时我必须永久登录以避免启动更新过程?

1 个答案:

答案 0 :(得分:0)

更新过程与您在问题中列出的更新过程略有不同。这个过程如下:

更新流程

1)当管理员登录后端时,会安装任何已下载的更新(迁移等) 2)使用后端区域中的更新功能更新系统时,将下载并安装更新 3)当从应用程序目录在命令行中调用控制台命令php artisan october:up时,将安装已下载的更新 4)使用控制台命令php artisan october:update下载并安装更新 5)使用作曲家composer update下载更新时,您可以使用php artisan october:up

进行安装