BuddyPress 群组

计划升级到 NextCloud 21

    • #2950
      飞仔
      楼主

      计划升级到 NextCloud 21

      2021年4月6日

      如何做好升级前的备份以及失败后的还原

      一、数据库与数据的备份 ✔

      使用 mysqldump 与 rsync 实现。

      二、系统环境备份 ✔

      备份 CentOS76en C盘

      目的是备份 apache、php、mysql 环境
      因为我计划升级 apache 至新版本。

      如何备份 CentOS76en C盘:

      用 HyperV 检查点备份 C盘

      首先在 CentOS76en 停止 apache ,然后分别临时卸载 fzdata 磁盘与 fzbackup 磁盘。
      从虚拟机设置里分别移除 fzdata 磁盘与 fzbackup 磁盘,此时做一个检查点。
      记录好做检查点时,CentOS76en 的详细配置,以便日后的还原工作。

      三、如何实现还原 ✔

      应用之前虚拟机备份的检查点,即可回到备份时的所有状态。

      如何升级 NextCloud 21

      一、升级 apache ✔

      卸载旧版本 apache ,建议考虑做好 apache 配置文件的备份。

      挂载 fzdata 磁盘与 fzbackup 磁盘,重启系统。

      计划使用清华 ius 源安装最新版本的 httpd24u 。升级 httpd24 目的就是要开启 HTTP/2 ,实际实施时发现 rh – SCL 软件集里有 httpd 2.4.34 可以达到目的,就使用 rh – SCL 软件集的版本。

      二、检查 NextCloud 运行,并升级到 HTTP/2 ✔

      检查 NextCloud 运行各种状态,确保没有问题后,
      将网站从原来的 HTTP/1.1 升级到 HTTP/2 。

      三、升级 NextCloud 21 💬

      在前提所有工作都顺利完成之后,升级 NextCloud 21 已经具备了所有条件。

      四、升级 AMP 最终完成 💬

      完成 httpd24u 的升级,以及 HTTP/2 部署,并且 NextCloud 21 完成升级的前提下:

      1、如果运行速度相比 NextCloud 20 有提升的情况下,目前至少在 2021年6月中旬内
      不考虑升级 PHP74 与 MariaDB10.5

      2、如果运行速度相比 NextCloud 20 的提升微乎其微
      我们才考虑进行重新部署新版本的 PHP74 以及 MariaDB10.5

      不是在原有的环境基础部署,而是重新全新安装新版 AMP 环境,然后挂载fzdata 磁盘与 fzbackup 磁盘。

      完成最终的 AMP 环境升级。

    • #2951
      飞仔
      楼主

      初步升级 NextCloud 21 的计划,由于本人对 Linux 系统的使用水平太低,当前只考虑到这些大概的步骤。

      目的升级 NextCloud21 ,顺便升级到 HTTP/2 ,所以要升级 apache。

       

      根据计划的步骤进行,详细操作将在实际折腾的时候进一步详细记录!

    • #2952
      飞仔
      楼主

      系统环境备份

      用 HyperV 检查点备份 C盘:

      停止 apache
      systemctl stop httpd

      查看挂载情况:( 使用命令:df -h )

      [root@localhost ~]# df -h
      Filesystem               Size  Used Avail Use% Mounted on
      /dev/mapper/centos-root   26G  8.1G   18G  31% /
      devtmpfs                 1.9G     0  1.9G   0% /dev
      tmpfs                    2.0G     0  2.0G   0% /dev/shm
      tmpfs                    2.0G  9.1M  2.0G   1% /run
      tmpfs                    2.0G     0  2.0G   0% /sys/fs/cgroup
      /dev/sda2               1014M  180M  835M  18% /boot
      /dev/sdc1                1.5T  376G  1.1T  26% /fzbackup
      /dev/sda1                200M   12M  189M   6% /boot/efi
      /dev/sdb1                920G  376G  544G  41% /fzdata
      tmpfs                    392M   12K  392M   1% /run/user/42
      tmpfs                    392M     0  392M   0% /run/user/0

      可以看出,我们需要临时卸载的 fzdata 与 fzbackup 分别是:

      /dev/sdb1   920G  376G  544G  41% /fzdata
      /dev/sdc1   1.5T  376G  1.1T  26% /fzbackup

      为什么叫临时卸载,因为我们没有修改 /etc/fstab 配置文件,在系统重启之后会再次自动挂载。

      分别临时卸载 fzdata 与 fzbackup :

      umount /dev/sdb1
      umount /dev/sdc1

      经确认,临时卸载 fzdata 与 fzbackup 之后,文件夹目录依旧存在,但是分别打开这两个文件夹,内部却是空空如也。

      OK,从虚拟机设置里分别移除 fzdata 磁盘与 fzbackup 磁盘。为了避免后续的再次添加,请注意这两个磁盘的添加顺序:fzdata 在先,fzbackup 在后。

      检查点已创建成功:CentOS76en_30G – (2021/4/7 – 2:08:32)
      检查点配置概述:
      已做完成 mysqldump 与 rsync 。
      已停止 httpd 。
      apache2.4.6,php7.3,mysql8,已临时卸载 fzdata 磁盘与 fzbackup 磁盘。

    • #2953
      飞仔
      楼主

      升级 apache

      卸载旧版本 apache:

      尝试使用命令列出已安装的 httpd 相关软件包:

      尝试命令:
      rpm -qa|grep httpd

      日志如下:

      [root@localhost ~]# rpm -qa|grep httpd
      httpd24-runtime-1.1-19.el7.x86_64
      httpd24-httpd-2.4.34-18.el7.x86_64
      httpd-2.4.6-93.el7.centos.x86_64
      httpd-tools-2.4.6-93.el7.centos.x86_64
      httpd24-httpd-tools-2.4.34-18.el7.x86_64
      httpd24-libnghttp2-1.7.1-8.el7.x86_64

      OK,执行卸载 httpd :

      尝试命令:
      yum -y remove httpd

      部分日志如下:

      Remove  1 Package (+1 Dependent package)
      
      Installed size: 9.6 M
      Downloading packages:
      Running transaction check
      Running transaction test
      Transaction test succeeded
      Running transaction
        Erasing    : 1:mod_ssl-2.4.6-93.el7.centos.x86_64                                                         1/2
      warning: /etc/httpd/conf.d/ssl.conf saved as /etc/httpd/conf.d/ssl.conf.rpmsave
        Erasing    : httpd-2.4.6-93.el7.centos.x86_64                                                             2/2
      warning: /etc/httpd/conf/httpd.conf saved as /etc/httpd/conf/httpd.conf.rpmsave
      warning: /etc/httpd/conf.modules.d/00-proxy.conf saved as /etc/httpd/conf.modules.d/00-proxy.conf.rpmsave
        Verifying  : 1:mod_ssl-2.4.6-93.el7.centos.x86_64                                                         1/2
        Verifying  : httpd-2.4.6-93.el7.centos.x86_64                                                             2/2
      
      Removed:
        httpd.x86_64 0:2.4.6-93.el7.centos
      
      Dependency Removed:
        mod_ssl.x86_64 1:2.4.6-93.el7.centos
      
      Complete!

      再次列出已安装的 httpd 相关软件包:
      rpm -qa|grep httpd
      日志如下:

      [root@localhost ~]# rpm -qa|grep httpd
      httpd24-runtime-1.1-19.el7.x86_64
      httpd24-httpd-2.4.34-18.el7.x86_64
      httpd-tools-2.4.6-93.el7.centos.x86_64
      httpd24-httpd-tools-2.4.34-18.el7.x86_64
      httpd24-libnghttp2-1.7.1-8.el7.x86_64

      貌似根本没有卸载干净吗?实在是烦,面对 Linux ,实在是太多的不了解。
      到底是否需要卸载与httpd相关的所有包,才能安装新版本?
      太多的不了解,唯一只有测试之后才能知道能否行得通。

      我决定卸载干净,再安装新版本的。

      继续尝试卸载命令:(全部失败)

      rpm -e httpd24-runtime-1.1-19.el7.x86_64
      rpm -e httpd24-httpd-2.4.34-18.el7.x86_64
      rpm -e httpd-tools-2.4.6-93.el7.centos.x86_64
      rpm -e httpd24-httpd-tools-2.4.34-18.el7.x86_64
      rpm -e httpd24-libnghttp2-1.7.1-8.el7.x86_64

      部分失败日志:

      [root@localhost ~]# rpm -e httpd24-runtime-1.1-19.el7.x86_64
      error: Failed dependencies:
              httpd24-runtime is needed by (installed) httpd24-libnghttp2-1.7.1-8.el7.x86_64
              httpd24-runtime is needed by (installed) httpd24-httpd-2.4.34-18.el7.x86_64
      [root@localhost ~]# rpm -e httpd24-libnghttp2-1.7.1-8.el7.x86_64
      error: Failed dependencies:
              libnghttp2-httpd24.so.14()(64bit) is needed by (installed) httpd24-httpd-2.4.34-18.el7.x86_64
      [root@localhost ~]# rpm -e httpd24-httpd-2.4.34-18.el7.x86_64
      error: Failed dependencies:
              httpd24-httpd-mmn = 20120211x8664 is needed by (installed) rh-php73-php-7.3.11-1.el7.x86_64

      这里发现,我们的计划需要一点改变。

      执行命令:yum list | grep httpd
      输出如下:

      [root@localhost ~]# rpm -qa|grep httpd
      httpd24-runtime-1.1-19.el7.x86_64
      httpd24-httpd-2.4.34-18.el7.x86_64
      httpd-tools-2.4.6-93.el7.centos.x86_64
      httpd24-httpd-tools-2.4.34-18.el7.x86_64
      httpd24-libnghttp2-1.7.1-8.el7.x86_64
      [root@localhost ~]# yum list | grep httpd
      httpd-tools.x86_64                         2.4.6-93.el7.centos    @base
      httpd24-httpd.x86_64                       2.4.34-18.el7          @centos-sclo-rh
      httpd24-httpd-tools.x86_64                 2.4.34-18.el7          @centos-sclo-rh
      httpd24-libnghttp2.x86_64                  1.7.1-8.el7            @centos-sclo-rh
      httpd24-runtime.x86_64                     1.1-19.el7             @centos-sclo-rh
      darkhttpd.x86_64                           1.11-1.el7             epel
      dmlite-apache-httpd.x86_64                 1.14.2-1.el7           epel
      httpd.x86_64                               2.4.6-97.el7.centos    updates
      httpd-devel.x86_64                         2.4.6-97.el7.centos    updates
      httpd-itk.x86_64                           2.4.7.04-2.el7         epel
      httpd-manual.noarch                        2.4.6-97.el7.centos    updates
      httpd-tools.x86_64                         2.4.6-97.el7.centos    updates
      httpd24.x86_64                             1.1-19.el7             centos-sclo-rh
      httpd24-build.x86_64                       1.1-19.el7             centos-sclo-rh
      httpd24-curl.x86_64                        7.61.1-2.el7           centos-sclo-rh
      httpd24-httpd.x86_64                       2.4.34-22.el7          centos-sclo-rh
      httpd24-httpd-devel.x86_64                 2.4.34-22.el7          centos-sclo-rh
      httpd24-httpd-manual.noarch                2.4.34-22.el7          centos-sclo-rh
      httpd24-httpd-tools.x86_64                 2.4.34-22.el7          centos-sclo-rh
      httpd24-libcurl.x86_64                     7.61.1-2.el7           centos-sclo-rh
      httpd24-libcurl-devel.x86_64               7.61.1-2.el7           centos-sclo-rh
      httpd24-libnghttp2.x86_64                  1.7.1-8.el7.1          centos-sclo-rh
      httpd24-libnghttp2-devel.x86_64            1.7.1-8.el7.1          centos-sclo-rh
      httpd24-mlogc.x86_64                       2.9.3-4.el7            centos-sclo-rh
      httpd24-mod_auth_kerb.x86_64               5.4-33.el7             centos-sclo-rh
      httpd24-mod_auth_mellon.x86_64             0.14.0-3.el7           centos-sclo-rh
      httpd24-mod_auth_mellon-diagnostics.x86_64 0.14.0-3.el7           centos-sclo-rh
      httpd24-mod_ldap.x86_64                    2.4.34-22.el7          centos-sclo-rh
      httpd24-mod_md.x86_64                      1:2.0.8-1.el7          centos-sclo-rh
      httpd24-mod_proxy_html.x86_64              1:2.4.34-22.el7        centos-sclo-rh
      httpd24-mod_security.x86_64                2.9.3-4.el7            centos-sclo-rh
      httpd24-mod_session.x86_64                 2.4.34-22.el7          centos-sclo-rh
      httpd24-mod_ssl.x86_64                     1:2.4.34-22.el7        centos-sclo-rh
      httpd24-nghttp2.x86_64                     1.7.1-8.el7.1          centos-sclo-rh
      httpd24-scldevel.x86_64                    1.1-19.el7             centos-sclo-rh
      iipsrv-httpd-fcgi.noarch                   1.0.0-6.0.el7          epel
      keycloak-httpd-client-install.noarch       0.8-1.el7              base
      libmicrohttpd.i686                         0.9.33-2.el7           base
      libmicrohttpd.x86_64                       0.9.33-2.el7           base
      libmicrohttpd-devel.i686                   0.9.33-2.el7           base
      libmicrohttpd-devel.x86_64                 0.9.33-2.el7           base
      libmicrohttpd-doc.noarch                   0.9.33-2.el7           base
      lighttpd.x86_64                            1.4.54-1.el7           epel
      lighttpd-fastcgi.x86_64                    1.4.54-1.el7           epel
      lighttpd-mod_authn_gssapi.x86_64           1.4.54-1.el7           epel
      lighttpd-mod_authn_mysql.x86_64            1.4.54-1.el7           epel
      lighttpd-mod_authn_pam.x86_64              1.4.54-1.el7           epel
      lighttpd-mod_geoip.x86_64                  1.4.54-1.el7           epel
      lighttpd-mod_mysql_vhost.x86_64            1.4.54-1.el7           epel
      mirmon-httpd.noarch                        2.11-1.el7             epel
      opensips-httpd.x86_64                      1.10.5-4.el7           epel
      owncloud-httpd.noarch                      9.1.5-1.el7            epel
      pagure-web-apache-httpd.noarch             5.13.2-1.el7           epel
      python2-keycloak-httpd-client-install.noarch
      python2-sphinxcontrib-httpdomain.noarch    1.7.0-1.el7            epel
      radicale-httpd.noarch                      1.1.2-1.el7            epel
      sclo-httpd24-mod_auth_mellon.x86_64        0.12.0-2.el7           centos-sclo-sclo
      sclo-httpd24-mod_ruid2.x86_64              0.9.8-5.el7            centos-sclo-sclo
      sympa-httpd.x86_64                         6.2.60-1.el7           epel
      sympa-lighttpd.x86_64                      6.2.60-1.el7           epel
      sysusage-httpd.noarch                      5.7-2.el7              epel
      thttpd.x86_64                              2.29-2.el7             epel
      viewvc-httpd-fcgi.noarch                   1.1.28-1.el7           epel
      viewvc-httpd-wsgi.noarch                   1.1.28-1.el7           epel
      web-assets-httpd.noarch                    5-1.el7                epel

      centos-sclo-rh 上有比较新版本的 httpd2.4.34,此版本是支持 HTTP/2 的,因此我们是不是可以安装此版本即可实现升级到 HTTP/2 ?

      尝试安装 httpd2.4.34

      yum install httpd24-httpd.x86_64

      输出部分日志:

      Upgrade  1 Package (+1 Dependent package)
      
      Total size: 1.5 M
      Is this ok [y/d/N]: y
      Downloading packages:
      Running transaction check
      Running transaction test
      Transaction test succeeded
      Running transaction
        Updating   : httpd24-httpd-tools-2.4.34-22.el7.x86_64                                                     1/4
        Updating   : httpd24-httpd-2.4.34-22.el7.x86_64                                                           2/4
        Cleanup    : httpd24-httpd-2.4.34-18.el7.x86_64                                                           3/4
        Cleanup    : httpd24-httpd-tools-2.4.34-18.el7.x86_64                                                     4/4
        Verifying  : httpd24-httpd-2.4.34-22.el7.x86_64                                                           1/4
        Verifying  : httpd24-httpd-tools-2.4.34-22.el7.x86_64                                                     2/4
        Verifying  : httpd24-httpd-2.4.34-18.el7.x86_64                                                           3/4
        Verifying  : httpd24-httpd-tools-2.4.34-18.el7.x86_64                                                     4/4
      
      Updated:
        httpd24-httpd.x86_64 0:2.4.34-22.el7
      
      Dependency Updated:
        httpd24-httpd-tools.x86_64 0:2.4.34-22.el7
      
      Complete!

      检查 httpd 版本:

      [root@localhost ~]# httpd -v
      bash: httpd: command not found...

      创建一个连接(快捷方式)到 /usr/bin/httpd
      ln -s /opt/rh/httpd24/root/usr/sbin/httpd /usr/bin/httpd

      再次检查 httpd 版本:

      [root@localhost ~]# httpd -v
      Server version: Apache/2.4.34 (Red Hat)
      Server built:   Dec  1 2020 12:16:36

      难道是升级完成了吗?不管玩不玩成,反正累了。

    • #2954
      飞仔
      楼主

      开启 HTTP/2 实际上没有那么简单 😥

      过程简直曲折离奇!欲知后续详细剧情,请继续关注今天 23:32 的午夜折腾专场,将为大家献上详细的文字直播✍️

    • #2955
      飞仔
      楼主

      太多需要去测试完善与处理,有空了再记录。

      🕒

正在查看 5 条回复
  • 哎呀,回复话题必需登录。