宝塔面板部署NextCloud(16.0.0)逐一解决后台安全及设置警告
13.x对应:宝塔面板部署NextCloud逐一解决后台安全及设置警告
14.x对应:宝塔面板部署NextCloud(14.0.3)逐一解决后台安全及设置警告
注:我从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 条评论
请问怎么联系到博主
@汇桥科技
在的,怎么了?
@Bug侠
主要是想请教一下 怎么安装那个OFFICE插件。
在18.0.1中,应该修改mysql性能这两栏为较大值:
连接数, 每个线程排序的缓冲大小
连接数, 读入缓冲区大小
否则在修改4字节的时候会报错
@袁
Nextcloud都更到18了……我也去更一下
求助一下,在运行sudo -u www php occ db:add-missing-indices时出现一下错误
[root@bt nextcloud]# sudo -u www php occ db:add-missing-indices
An unhandled exception has been thrown:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or directory in /www/wwwroot/192.168.2.192/nextcloud/lib/private/DB/Connection.php:68
Stack trace:
#0 /www/wwwroot/192.168.2.192/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(420): OC\DB\Connection->connect()
#1 /www/wwwroot/192.168.2.192/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(380): Doctrine\DBAL\Connection->getDatabasePlatformVersion()
#2 /www/wwwroot/192.168.2.192/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(324): Doctrine\DBAL\Connection->detectDatabasePlatform()
#3 /www/wwwroot/192.168.2.192/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(683): Doctrine\DBAL\Connection->getDatabasePlatform()
@rainstorm130
已经解决,需要在数据库中建立一个“www”的用户,无密码,本地,的账号即可
老哥,利用宝塔面板创建的lnmp环境,然后web界面安装完nextcloud后,无法登录咋回事儿啊?就一直卡在登录界面
@maverick
这得具体分析,检查php日志或者nextcloud日志什么的,要不然没法准确的判断原因
@Bug侠
权限的问题
https://img.abeim.cn/imgs/2019/10/81c89b28fe804de6.png
执行完sudo -u www php occ maintenance:repair就炸锅了,网站提示维护
lnmp MySQL5.5.62
@Abeim
这个和楼下的那位朋友情况一样啊,是不是第一步的修改没有做?
https://help.nextcloud.com/t/solved-syntax-error-or-access-violation-1071-specified-key-was-too-long-max-key-length-is-767-bytes/34740/3
@Bug侠
ALTER DATABASE pan CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
执行了,但是校对还是utf8_bin,并没有改变
@Abeim
第一步呢?
===========
1.修改MySQL配置文件,这里以MySQL 5.5 为例
在 [mysqld] 配置段里加入
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1
@Bug侠
前面的步骤都弄了
我使用完sudo -u www php occ maintenance:repair指令后就直接用不了了是怎么回事,指令报错An exception occurred while executing ‘ALTER TABLE `oc_addressbooks` CONVER
T TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;’:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 767 bytes
网站也进不去了,显示—该实例 Nextcloud 当前处于维护模式,这将花费一些时间。 当实例再次可用时,页面会自动刷新。
@A60
MySQL版本太低?MySQL需要>=5.5.3才支持utf8mb4字符集
@Bug侠
我是用的树莓派搭建的,用的是默认版本的mysql,好像就是5.5,具体是不是5.5.3就不清楚了
@A60
树莓派上的MySQL没折腾过……本文前面的几步都执行成功了吗?我搜了以下,官方论坛上有相关的东西,其实和本文里写的步骤差不多:
https://help.nextcloud.com/t/solved-syntax-error-or-access-violation-1071-specified-key-was-too-long-max-key-length-is-767-bytes/34740
@Bug侠
是的,所有的都成功了,就这一步不行,但是也不影响,就无所谓了吧
sudo -u www php occ maintenance:repair
为啥执行了这个命令提示:sudo: php:找不到命令
@弦夕
什么环境呢?宝塔还是LNMP?
@Bug侠
AMH面板,LNMP环境。
现在的问题是:
sudo -u www /usr/local/php-7.2/bin/php occ files:scan –all 后。。。
出现错误:
An unhandled exception has been thrown:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or directory in /home/wwwroot/Host_work_A/domain/OANAS/web/lib/private/DB/Connection.php:64
Stack trace:
老师您好,请问我的nextcloud部署后,其他文件下载的时候速度都是很快,唯独mp4格式的下载很慢。。。
@zion
呃……
我还没遇到这样的问题,只能理论上分析,你可以参考一下:
将mp4文件至于nextcloud之外进行测试下载。比如把mp4文件放到根目录,直接通过http://域名/xxx.mp4这样的方式访问,看看下载速度。这样可以分析出到底是因为nextcloud或者是nginx/apache而造成的速度慢
分析出是哪个组件的原因,然后再逐一检查……
@Bug侠
嗯。您好, 我放在网站目录测试了,单独直接下载开始几秒钟速度很快,到后面,,就很慢了,用的移动数据下载,然后用内网wifi下载较为正常,但是相当于其他文件格式下载速度还没没达到最大,,不知道哪里该优化,还是防火墙的原因,如果是防火墙,不应该只针对mp4 mov这些视频格式。
@张
唉,这个就很难说了,首先通过你上述的操作,可以简单判断出来和Nextcloud的关系不大,因为抛开NC,单独下载也会复现此问题。之后还得根据实际情况再分析。比如后端参数配置、网络环境、缓存处理等等,我猜测和防火墙的关系应该不大。着重是http后端的配置方面。不好意思,没能给你点实质性的建议……
请教一下关于smbclient问题:我这边smbclient和php-client都在shell下手动装了,但是nextcloud挂载外部存储那里还是不行。这是什么原因呢?(只使用了apt-get install smbclient 和apt-get install php-smbclient)
@mdos
您好,已更新一篇挂载SMB的文章,请参考:https://bugxia.com/1306.html
咨询一下,nextcloud和onlyoffice之间只能用https连接吗?http有办法不?
@TaoGe
不好意思,没接触过nextcloud集成onlyoffice,所以没法回答。