宝塔面板部署NextCloud(16.0.0)逐一解决后台安全及设置警告

Linux, PHP 2019/05/07

13.x对应:宝塔面板部署NextCloud逐一解决后台安全及设置警告

14.x对应:宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告

相关:宝塔面板下nextcloud完美优化配置

注:我从14.x直接跨本版升级到了16.0.0,越过了15.x版本,所以无法记录到15.x版本的一些告警及处理方法

16.x对应的一些新告警

逐一解决

1.一些文件没有通过完整性检查

这个就不多说了,点击无效文件列表,删除或者移动列表里不应该存在的文件到别的目录,然后重新扫描一遍即可。

2.PHP 的安装似乎不正确,无法访问系统环境变量。getenv(“PATH”) 函数测试返回了一个空值

参考 宝塔面板部署NextCloud逐一解决后台安全及设置警告 第1条

3.PHP 内存限制低于建议值 512MB

修改php的内存配置即可

4.所使用的数据库为MySQL但没有对4字节字符的支持。为正确处理文件名或评论中使用的4字节字符(比如emoji表情),建议开启MySQL的4字节字符支持

提示:此步骤有风险,请一定要先备份数据

按照 官方文档 的指导:

1.修改MySQL配置文件,这里以MySQL 5.5 为例

[mysqld] 配置段里加入

innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1

保存后重启MySQL

2.修改nextcloud的数据库的字符集和排序规则

ALTER DATABASE nextcloud所在的数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

可以在shell下使用mysql执行上述SQL命令,也可以用phpmyadmin执行

3.修改nextcloud配置文件config.php

utf8mb4 值改为 true

官方给出的方法是使用occ命令,当然也可以直接修改config.php

occ命令:需要在nextcloud的安装根目录下执行

sudo -u www php occ config:system:set mysql.utf8mb4 --type boolean --value="true"

直接修改:

4.修复数据库

同样是occ命令,需要在nextcloud的安装根目录下执行

sudo -u www php occ maintenance:repair

完成上述操作后,即可修复该告警

5.HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒。为了提高安全性,建议参照security tips ↗中的说明启用HSTS

参考 宝塔面板部署NextCloud逐一解决后台安全及设置警告 第4条

6.未找到 PHP 的 “fileinfo” 模块。强烈推荐启用该模块,从而获得更好的 MIME 类型探测结果。

参考 宝塔面板部署NextCloud逐一解决后台安全及设置警告 第2条

因为我这边是php 7.3.5,所以顺便可以参考 宝塔面板5.9手动编译php7.3 fileinfo模块

7.PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini中使用下列设置

参考 宝塔面板部署NextCloud逐一解决后台安全及设置警告 第6条

8.数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。您可以在 Nextcloud 运行时通过命令行手动执行 “occ db:add-missing-indices” 命令修复丢失的索引。索引修复后会大大提高相应表的查询速度。

参考 宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告 第3条

9.该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们

这里我缺少的是imagemagick模块,在php的面板上直接安装即可

10.数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。您可以通过命令行手动执行 “occ db:convert-filecache-bigint” 命令以应用挂起的更改。该操作需要当整个实例变为离线状态后执行。查阅相关文档以获得更多详情。

shell下执行occ命令:需要在nextcloud的安装根目录下执行

sudo -u www php occ db:convert-filecache-bigint

程序会询问是否继续执行这项操作,可能需要几个小时,具体取决于文件数量!输入y,回车,继续转换~

程序会在后台自动转换,不用担心

完美解决

本文标签:


38 条评论

  • jerry.hu 评论于 回复

    nextcloud内网上传速度很慢,有知道什么问题吗?

  • 专业坑对 评论于 回复

    你好请教一下我在win2019服务器系统下使用宝塔部署nextclound的时候报这个应该怎么解决
    An exception occurred while executing ‘SELECT `uid`, `displayname` FROM `oc_users` WHERE `uid_lower` = ?’ with params [“*********”]: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘nextclound.oc_users’ doesn’t exist

    • 专业坑对 评论于 回复

      @专业坑对
      然后麻烦博主删除一下上面评论,发现暴露了我的个人信息

      • Bug侠 评论于 回复

        @专业坑对
        已删除,这个报错是说“oc_users”这个表不存在,是不是部署的时候数据库丢失什么的导致的

        • 专业坑对 评论于 回复

          @Bug侠
          这个数据库是新创建的,里面没有什么表啥的,是第一次部署,我在阿里云Linux轻量级服务器部署正常,最近想用个人pc做个内网穿透部署不是到是不是因为win系统的问题导致的。这个结果无论是我用虚拟机还是物理机都不行

    评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)