两年前,我发表了有关创建基于Debian 8的Web服务器并在其上启动Nextcloud 11服务的主题的系列文章。更新了Debian和Nextcloud,没有遇到任何异常或有趣的问题。 2019年底的更新已经更加有趣并且值得一读。

根据最近四篇文章的说明,本文对那些在Debian 9上“收集” Nextcloud 13的人(对于在Nextcloud上我的十个订阅者致以问候,特别是那些在Linux领域首次体验的用户)致敬。 对于那些打算从头开始提供服务的人,我建议您以本系列的前四篇文章作为基础,这些文章针对Debian 10和Nextcloud 17的当前版本进行了调整。对于有经验的Linux用户,该文章可以在“琐碎无用”与“不错”之间找到一些位置,一站式备忘单。”
目录
第1部分。设置日常使用的Debian环境第2部分。创建服务器-在Debian中设置LAMP第3部分。创建个人云-安装和配置Nextcloud第4部分。更新2018-Debian 9和Nextcloud 13第5部分。更新2019-PHP 7.2,MariaDB 10.4和Nextcloud 17
快速章节导航
前言Debian更新PHP更新到7.2版将MariaDB更新到版本10.4Nextcloud更新到版本17后记
前言
最初,我想在Debian 10上安装和配置Nginx,并在其上安装当前的Nextcloud 17不会出现任何问题,但是由于所有这些,我无法选择时间,因此本文提供了一组说明,将Nextcloud从13升级到当前版本准备Web服务器。
首先,您需要解释为什么在Web服务器端需要进行彻底的更改。 我们的服务器基于当前受支持的Debian9。您只需更新操作系统,Web服务器的所有组件都将至少收到安全更新。 如果我们进一步使用Nextcloud 13或仅升级到版本14,一切都会很好。但是不再支持Nextcloud 13,并且对第14版的支持正在不断发展。 从第15版开始,Nexctcloud将提供将数据库转换为big int以支持四字节编码的功能,而对于MariaDB 10.1,这将是一个很大的问题。 Nexctcloud 17需要PHP 7.1-7.3,而Debian 9仅在其本地存储库中包含7.0版。 就可靠性和可预测性而言,升级到倒数第二个版本的Nextcloud会更正确,但是几年来我对这项服务的可靠性非常确定,因此我想升级到最新版本并为将来的储备更新Web服务器。 因此,要升级到Nexctcloud 17,最好将MariaDB升级到当前的稳定版本10.4,并将PHP升级到7.2。 它是7.2,与7.4不相关。 事实是Nextcloud 13需要PHP 5.6、7.0-7.2,而Nexctcloud 17需要PHP 7.1-7.3。 为了最小化升级操作,使用PHP 7.2很方便。 Apache服务器不需要更新-只需安装由Debian支持团队分发的安全更新。 但是对于更新,MariaDB和PHP将必须连接外部存储库。
当我初次遇到Nextcloud时,我是通过“手工”方式对其进行更新的:一个特殊团队从控制台将网站置于维护模式,手动下载并解压缩了具有该网站新版本的存档,文件被更新并且更新过程开始。 尽管我并不懒于制作站点,数据库和用户数据的备份副本,但这样的更新通常可以达到预期的结果。 但是自动更新有时会带来各种意外。 但是很久以前,此后引擎的稳定性大大提高了,这次我只通过Web界面进行了更新。 是的,仍然不可能脱离命令行。 在每个新版本的迭代更新过程中,各种警告和通知将出现在控制面板中,需要通过在命令行上有意义地执行命令来“删除”这些警告和通知。 您无法执行此操作-该服务仍然可以运行。 尽管这种方法从根本上是错误的,但在我有意解决出现的问题之前,Nextcloud在这种模式下为我工作了3个月。
Debain更新
停止Web服务器:
并更新:
更新后,您可以检查操作系统版本并进行检查重启,以确保更新后一切正常启动:
PHP更新到7.2版
停止Web服务器:
添加证书和PPA密钥,PHP存储库:
如果删除旧版本的PHP 7.0,由于我们将使用autoremove清除已删除软件包中的“痕迹”,因此phpmyadmin也将被删除。 这不会造成太大的困难,因为没有为phpmyadmin进行任何特殊设置,并且再次安装它不会有任何问题。
安装Nextcloud 17所需的模块:
[ 本文是由AlexanderS专为habr.com编写的。
链接到源是可选的,但是非常希望获得它的引用! ]我们检查PHP的版本,启动Web服务器并检查Nextcloud的可操作性:
将MariaDB更新到版本10.4
项目网站上有一个
有趣的页面 ,您需要在
该页面上指示您的操作系统,其发行版本并选择数据库版本。 选择后,将生成代码以添加存储库。
停止Web服务器:
添加存储库并更新软件包:
安装MariaDB时,程序包管理器将正确删除以前的版本并安装新版本,所有数据库都将被保存。 但是,当然建议备份Nextcloud数据库。
安装MariaDB并运行更新过程:
输入密码后,MariaDB将更新,并可以
按照第二部分中的
说明进行配置:
我们启动Web服务器并检查Nextcloud的性能:
Nextcloud更新到版本17
要开始更新,您需要在管理条目下登录该服务,继续进行设置并在管理部分中打开“常规设置”。 Nextcloud显示已安装的版本和可用于更新的版本,可以通过单击“打开更新窗口”按钮来启动它们。 启动后,Nextcloud进行备份,下载并检查更新文件的完整性,打开维护模式并更新文件。 接下来是“保持维护模式激活”问题吗? 您在这里需要小心。 肯定的回答将使站点处于维护模式-假定管理员知道下一步做什么并手动进行。 否则,Nextcloud将自行完成所有操作,因此请单击“否”继续。
更新是迭代执行的。 Nextcloud 13.x将首先升级到14.x分支的最新版本。 之后,您需要返回到管理中心并开始更新,现在从14.x到15.x。 依此类推,直到达到最新的最新版本为止。 每次更新后,在管理部分的“常规设置”页面上,将显示遇到的建议和问题以及解决这些问题的建议的列表。 下面我们将讨论每次更新后需要做什么。
更新之前在最新版本的Nextcloud上,建议您启用PHP OPcache以提高性能。 奇怪的是我几年前错过了这一刻,因为OPcache出现在PHP 5中。在/etc/php/7.2/apache2/php.ini中,您需要取消注释和编辑以下参数:
opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 pcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1
更新13.x-> 14.x我们还原表的索引:
更新14.x-> 15.x准备nextcloud数据库以启用四字节编码:
在Nextcloud中启用对四字节编码的支持:
我们转换表:
恢复丢失的表索引:
将表索引转换为bigint:
更新15.x-> 16.x恢复丢失的表索引:
将表索引转换为bigint:
更新16.x-> 17.x无需采取进一步措施。
后记
按照此说明,具有Nextcloud 13的虚拟机已更新,使用该虚拟机可以不备份Nextcloud文件及其数据库,因为如果出现问题,您可以简单地返回以前保存的虚拟机文件并重新开始。 但是,这不适用于用户数据文件夹,我建议也使用Nextcloud虚拟机进行备份。 在我的情况下,“云”用作具有自动版本控制的远程文件夹,而且同步方向“仅在那里”,对我而言,丢失这些数据并不重要-我只需要再次同步几个小时。 尽管我一生都忽略了“保持万一以防万一”的规则,但更新进行得很顺利,所有客户也都使用Nextcloud 17赚钱了,没有任何问题。
更新之后,我决定清理用户数据,根据统计数据,该数据占用了2 TB。 我没有太多的操作数据-版本中的大部分已被版本文件和已删除的文件占用。 我遇到的问题是,一个用户删除的数据太多(甚至不是数量,而是数量-很多小文件),导致Nextcloud无法在网络界面中显示它们。 在学习了管理指南之后,我通过命令行找到了解决方案。 也许这对某人会派上用场。
要清除用户user的已删除文件:
要清除用户版本文件:
返回
到目录的开头 。
创建家庭云的历史。 第5部分。更新2019-PHP 7.2,MariaDB 10.4和Nextcloud 17
文字版本:1.1.1。
首次发布日期:2020年1月15日。
上次编辑时间:2020年1月15日。
更新日志1.1.1 [15-01-2020]
错字校正。
1.1.0 [15-01-2020]
修复了准备nexcloud数据库以启用四字节编码的代码。
1.0.0 [15-01-2020]
第一版。