BuddyPress 群组

计划升级到 NextCloud 21

    • 398  #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 已经具备了所有条件。

      解决 NextCloud 21 这两个警告 ✔

      • 您的网页服务器未正确设置以解析”/.well-known/webfinger”。更多信息请参见文档。
      • 您的网页服务器未正确设置以解析”/.well-known/nodeinfo”。更多信息请参见文档。

      四、升级 AMP 最终完成 💬

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

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

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

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

      完成最终的 AMP 环境升级。

      目前不打算升级 Mariadb 与 php74,因为当时测试的上传速度是在 http 下的上传速度肯定比 https 的快一些,并且可以修改 NextCloud 配置的一些参数使上传速度更快。等很有时间与精力了再折腾吧!

    • #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...

      分别创建连接(快捷方式)

      ln -s /opt/rh/httpd24/root/usr/sbin/httpd /usr/bin/httpd
      ln -s /opt/rh/httpd24/root/usr/sbin/httpd /usr/sbin/httpd
      

      再次检查 httpd 版本:

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

      命令行启用
      scl enable httpd24 bash

      启动 httpd24
      service httpd24-httpd start

      查看httpd24运行状态
      systemctl status httpd24-httpd

      设置开机启动 httpd
      systemctl enable --now httpd24-httpd

      安装 mod_ssl

      列出软件包版本
      yum list | grep mod_ssl

      日志如下:

      [root@localhost ~]# yum list | grep mod_ssl
      httpd24-mod_ssl.x86_64                     1:2.4.34-22.el7        centos-sclo-rh
      mod_ssl.x86_64                             1:2.4.6-97.el7.centos  updates

      执行安装 mod_ssl
      yum install httpd24-mod_ssl.x86_64

      到此,httpd24 已经安装完成。

      下一步,配置 HTTP/2,这个步骤需要更改许多配置。更改 httpd 工作模式,安装 php-fpm …

    • #2954
      飞仔
      楼主

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

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

    • #2955
      飞仔
      楼主

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

      🕒

    • #2957
      飞仔
      楼主

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

      将 apache 升级到 httpd 2.4.34 后,我们已经具备开启 HTTP/2 的访问条件了。检查 NextCloud 运行状态,目前看来,NextCloud 运行状况良好,没有什么问题。由于折腾的时候无法做到非常详细的步骤记录,大概记得好像是升级了 httpd 2.4.34 之后,已 apache 身份运行的后台任务无法正常工作。

      定时执行的后台任务脚本如下:

      */15 * * * * php -f /fzdata/www/html/nextcloud/cron.php
      

      这个问题也可能是更改了 apache 的工作模式之后才发现的,反正在官方手册找了另一种系统计时器方法执行后台定时任务。

      /etc/systemd/system/目录下分别创建 nextcloudcron.service 与 nextcloudcron.timer 两个文件内容如下:

      nextcloudcron.service 文件内容:

      [Unit]
      Description=Nextcloud cron.php job
      
      [Service]
      User=apache
      ExecStart=/usr/bin/php -f /fzdata/www/html/nextcloud/cron.php
      KillMode=process

      nextcloudcron.timer 文件内容:(每10分钟执行cron.php)

      [Unit]
      Description=Run Nextcloud cron.php every 10 minutes
      
      [Timer]
      OnBootSec=10min
      OnUnitActiveSec=10min
      Unit=nextcloudcron.service
      
      [Install]
      WantedBy=timers.target

      然后启动系统计时器执行 cron.php 后台任务:

      systemctl enable --now nextcloudcron.timer
      

      后台任务不能定时执行的问题已解决。

      开启 HTTP/2 ✔

      apache 开启 HTTP/2 需要切换工作模式为 mpm_event (在这里花了不少的时间去解决各种之前从未遇到过的问题)

      1、修改 apache 工作模式

      修改配置文件/opt/rh/httpd24/root/etc/httpd/conf.modules.d/00-mpm.conf

      # Select the MPM module which should be used by uncommenting exactly
      # one of the following LoadModule lines:
      
      # prefork MPM: Implements a non-threaded, pre-forking web server
      # See: http://httpd.apache.org/docs/2.4/mod/prefork.html
      # 注释默认的 mpm_prefork 工作模式
      # LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
      
      # worker MPM: Multi-Processing Module implementing a hybrid
      # multi-threaded multi-process web server
      # See: http://httpd.apache.org/docs/2.4/mod/worker.html
      #
      #LoadModule mpm_worker_module modules/mod_mpm_worker.so
      
      # event MPM: A variant of the worker MPM with the goal of consuming
      # threads only for connections with active processing
      # See: http://httpd.apache.org/docs/2.4/mod/event.html
      # 启用 mpm_event 工作模式
      LoadModule mpm_event_module modules/mod_mpm_event.so

      2、开启 HTTP/2

      修改配置文件/opt/rh/httpd24/root/etc/httpd/conf.d/ssl.conf
      <VirtualHost>之间</VirtualHost>加入 Protocols h2 http/1.1 开启 HTTP/2,示例如下:

      <VirtualHost _default_:443>
      ...
      # 开启 HTTP/2
      Protocols h2 http/1.1
      ...
      DocumentRoot "/var/www/html"
      ...
      </VirtualHost>

      3、安装与启用 php-fpm

      由于之前 apache 工作在 mpm_prefork 模式,不需要启用 php-fpm ,在安装 PHP 的时候没有安装 php-fpm 。

      安装 php-fpm
      yum install rh-php73-php-fpm

      启动 php-fpm
      service rh-php73-php-fpm start

      设置开机启动 php-fpm
      systemctl enable --now rh-php73-php-fpm

      4、apache 搭配 php-fpm 运行的配置

      首先停止 apache 与 php-fpm 这两个家伙,配置 Apache 使用 Unix Socket 连接 PHP

      新建配置文件 rh-php73-php-fpm.conf,内容如下:

      <FilesMatch \.php$>
              SetHandler "proxy:unix:/run/php73-php-fpm.sock|fcgi://localhost"
      </FilesMatch>
      

      保存至/opt/rh/httpd24/root/etc/httpd/conf.d/ 目录下。

      接下来

      创建 Socket 文件

      /run/目录下创建php73-php-fpm.sock

      cd /run
      touch php73-php-fpm.sock
      chown apache:apache php73-php-fpm.sock
      chmod 777 php73-php-fpm.sock
      

      配置 php-fpm 监听 Unix Socket
      修改配置文件/etc/opt/rh/rh-php73/php-fpm.d/www.conf

      ;   '/path/to/unix/socket' - to listen on a unix socket.
      ; Note: This value is mandatory.
      ; 注释默认的 TCP监听端口
      ; listen = 127.0.0.1:9000
      
      ; 监听刚才创建的 php73-php-fpm.sock
      listen = /run/php73-php-fpm.sock
      listen.owner = apache
      listen.group = apache

      现在所有 HTTP/2 的工作条件已经具备,重启 apache 与 php-fpm 之后,删除浏览器缓存,刷新你的网站即可验证 h2 已经正常工作了。

      实际配置 apache 与 php-fpm 是经历了无数次的失败,之后才让她们配合起来工作的啦!

    • #2958
      飞仔
      楼主

      经过前面的无数次失败铺垫,升级 NextCloud 21 简直就是小菜一碟。可是不仅仅是升级且能运行这么简单的工作,后续遇到了更多费劲心思却还是以失败告终的折磨!单域名解析到单IP,部署了两个独立应用 WordPress 与 NextCloud 。

      自从升级了 NextCloud 21 之后,如下的两个警告一直都在纠缠着我,直到今天才彻底把他两甩开!

      • 您的网页服务器未正确设置以解析”/.well-known/webfinger”。更多信息请参见文档。
      • 您的网页服务器未正确设置以解析”/.well-known/nodeinfo”。更多信息请参见文档。

      如下图:

       

      累了,明天接着继续完善记录…

    • #2961
      飞仔
      楼主

      下面是测试 Nextcloud 共享的音乐列表,需要登录才能查看。

      登录查看完整内容!

    • #2962
      飞仔
      楼主

      升级 NextCloud 21 ✔

      从 NextCloud20.0.8 → NextCloud20.0.9 → NextCloud21.0.1 使用常规手动升级操作

      手动升级 NextCloud 常规操作

      停止 httpd24
      service httpd24-httpd stop

      检查 httpd24 状态是否停止
      systemctl status httpd24-httpd

      重命名 nextcloud 目录为 nextcloud-old

      上传 NextCloud 20.0.9

      复制配置文件至新版目录
      cp /fzdata/www/html/nextcloud-old/config/config.php /fzdata/www/html/nextcloud/config/

      进入目录
      cd /fzdata/www/html
      设置权限

      chown -R apache:apache nextcloud
      find nextcloud/ -type d -exec chmod 750 {} \;
      find nextcloud/ -type f -exec chmod 640 {} \;

      移动 data 目录至新版目录
      mv /fzdata/www/html/nextcloud-old/data /fzdata/www/html/nextcloud/

      进入目录
      cd /fzdata/www/html/nextcloud

      执行升级
      sudo -u apache php occ upgrade

      启动 httpd24
      service httpd24-httpd start

      升级完成。

      从 NextCloud20.0.8 → NextCloud20.0.9 升级完成,安全与设置警告里只有 HTTP 请求头的这个警告。

      但是从 NextCloud20.0.9 → NextCloud21.0.1 升级完成,安全与设置警告里多了几个出来:

      如下图:
      nextcloud21设置警告

      警告1:HTTP 请求头“Strict-Transport-Security”未设置为至少“15552000”秒。

      这个不处理,内网偶尔需要使用 HTTP 访问。

      警告2:您的网页服务器未正确设置以解析”/.well-known/webfinger”。更多信息请参见文档。
      警告3:您的网页服务器未正确设置以解析”/.well-known/nodeinfo”。更多信息请参见文档。

      这两个是最头疼的问题,稍后详细说明解决方法。

      警告4:您的安装没有设置默认的电话区域。

      在 NextCloud 的配置文件 config.php 加入以下代码:(解决)
      'default_phone_region' => 'CN',

      警告5:数据库丢失了一些索引。… 通过命令手动执行“occ db:add-missing-indices”命令修复丢失的索引。

      进入 NextCloud 目录,输入 occ 命令:(解决)
      sudo -u apache php occ db:add-missing-indices

    • #2963
      飞仔
      楼主

      httpd 配置不合理导致无法解决这两个警告!

      警告2:您的网页服务器未正确设置以解析”/.well-known/webfinger”。更多信息请参见文档。
      警告3:您的网页服务器未正确设置以解析”/.well-known/nodeinfo”。更多信息请参见文档。

      关于解决这两个警告,反正我没有在 NextCloud 手册上找到更好的解决方法了。

      在 NextCloud 21 之前一直都没有 /.well-known/ 相关的警告,为什么升级了 NextCloud 21 之后会出现?如果是 httpd 配置不合理,为什么一直都正常使用到现在 NextCloud 21 才出现此警告?

      原先的网站结构是这样的:wordpress + nextcloud
      /fzdata/www/html/ 网站根目录,wordpress 安装在此根目录上。
      /fzdata/www/html/nextcloud/ 子目录 nextcloud 安装在此子目录上。

      访问 wordpress 是:域名:端口号
      https://sgtfz.cn:9988
      访问 nextcloud 是:域名:端口号 + nextcloud 目录的形式访问
      https://sgtfz.cn:9988/nextcloud/

      这样子已经运行了几年了哟,现在才发现配置不合理。哎 … !

      升级到 NextCloud 21 之后还是保持这样的网址访问,也是没有任何问题,只是无论如何修改.htaccess文件,都无法解决以上的两个警告。

      最后,一直在寻找方法与尝试各种配置的过程中,偶尔发现直接访问服务器IP地址:192.168.10.5 直接重写到 NextCloud ,于是进入设置查看,/.well-known/ 相关的警告一个都没有啦!!!别激动先,请注意细节,此时是 http 协议访问,只要使用 https 访问,即使是 IP 地址访问例如 https://192.168.10.5 依旧会有 /.well-known/ 相关的警告。

      足以证明,绝对是 httpd 配置文件里与 https 相关的配置文件没有配置合理导致的问题。

      累了,有空再完善记录 …

    • #2964
      飞仔
      楼主

      更改网站的目录结构

      既然配置不合理,干脆更改网站的目录结构!

      原先的网站结构是这样的:wordpress + nextcloud
      /fzdata/www/html/ 网站根目录,wordpress 安装在此根目录上。
      /fzdata/www/html/nextcloud/ 网站子目录 nextcloud 安装在此子目录上。

      确实看着都有点扯淡!

      目录结构决定改为:

      /fzdata/www/html/wordpress/
      /fzdata/www/html/nextcloud/
      

      规划好各自有各自的地盘,让他们安居乐业。

      😜

      修改配置文件即可实现目的,话说真的很简单,当明白了其中的套路后,确实很简单。

      修改 apache 的配置文件

      将之前的所有配置文件推翻,为了拿到默认的配置文件,再苦再累也要建立一个虚拟机,再安装 apache 拿到默认的配置文件,我们从新开始吧!

      默认的 httpd.conf
      /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf

      就仅需拉到配置文件最后,加入以下的规则:

      # 部署网站的根目录
      <Directory "/fzdata/www/html">
          Options FollowSymLinks
          AllowOverride All
          Require all granted
      </Directory>

      就这么简单。

      默认的 ssl.conf
      /opt/rh/httpd24/root/etc/httpd/conf.d/ssl.conf
      就让他静静默默的在那即可。

      /conf.d/ 这个目录添加 NextCloud 与 WordPress 各自的配置文件。
      /opt/rh/httpd24/root/etc/httpd/conf.d/

      这才是光明大道?为何兜兜转转最终还是在原地打滚呢?

      因为失败是成功之母,终于把 apache 配置好了,警告也随之消失了,完美!

      之前的配置都是东拼西凑来的碎片,在没有弄清楚他们的工作套路之前,也只能东拼西凑来。等你搞清楚他们的工作套路了之后,才会发现当初有多 SB

      记录至此结束。

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