Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 安全更新OctoberCMS网站 问题的前提_Php_Laravel_Updating_Octobercms - Fatal编程技术网

Php 安全更新OctoberCMS网站 问题的前提

Php 安全更新OctoberCMS网站 问题的前提,php,laravel,updating,octobercms,Php,Laravel,Updating,Octobercms,作为开发人员,我们需要知道客户使用的软件与我们交付给他们的软件完全相同。我们还需要开发堆栈不是一个移动的目标。为此,软件更新应完全由开发人员控制 问题 我可以在OctorberCMS中禁用所有自动更新(核心、插件、主题)吗 更新的首选方法 为了避免任何“破坏性”更改,我希望通过以下组合更新实时(和测试)网站 *git ftp从开发服务器到测试/直播 和 *php artisan十月:向上 细节 其中有一节说 更新过程 当发生以下任一情况时,十月将自动执行更新过程: 1) 当管理员登录到后端

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


问题 我可以在OctorberCMS中禁用所有自动更新(核心、插件、主题)吗


更新的首选方法 为了避免任何“破坏性”更改,我希望通过以下组合更新实时(和测试)网站
*
git ftp
从开发服务器到测试/直播

*
php artisan十月:向上


细节 其中有一节说

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

1) 以及3)没有机会避免可能无意中“破坏”实时网站的更改:

在1)中,每次管理员登录到live站点时,可能会上载并安装可能会破坏的更改

在3)中,为更新的插件更新数据库的过程也可能导致系统的其他部分更新,这
a) 中断活动站点
b) 使实时站点与开发和测试不同步

同一页上还有一个部分说

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

1.1.0:!!!这是一个重要的更新,包含突破性的更改

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

Confirm update
Skip this plugin (once only)
Skip this plugin (always)
确认注释会像往常一样更新插件,如果注释被跳过,则不会更新插件

但是,这有两个问题:

1) 插件作者必须彻底测试了更新,意识到“破坏性更改”,并添加了
到版本文件

2) 更新可能不会“破坏”标准意义上的网站,但它可能会导致不必要的副作用,这可能实际上相当于破坏

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

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

'disableCoreUpdates'=>false

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

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

即使在开发服务器上,自动更新插件也是一个问题,这一点很有争议:
在开发一个网站时,它突然崩溃了。此中断是由于开发人员所做的更改,还是在后端登录期间发生的插件后台更新?

这是否意味着,在开发网站时,我必须让自己永久登录,以避免启动更新过程

更新过程有点不同,然后在问题中列出它。过程如下所示:

更新过程

1) 当管理员登录到后端时,将安装所有已下载的更新(迁移等)
2) 使用后端区域中的更新功能更新系统时,将下载并安装更新。
3) 从应用程序目录的命令行中调用console命令
php artisan十月:up
时,将安装已下载的更新。
4) 使用控制台命令
php artisan-october:update
下载并安装更新。

5) 使用composer
composer update
下载更新,您可以使用
php artisan october:up

谢谢,@Ametad。因此,在1)中,当管理员登录时,没有下载。相反,系统有效地(可能是真的?)运行
php artisan-october:up
,以确保在所有已下载的插件文件上都进行了数据库迁移等操作。是吗?再次感谢你,阿梅塔德。我松了一口气。您是否同意我的观点,在这种情况下使用“更新过程”一词是含糊不清的,需要澄清?我想说术语“更新过程”通常指更新系统的整个过程,包括下载。在美国,它被用来表示简单地运行更新软件,这是误导。是的,它可能需要一些澄清。