首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >宝塔面板部署Nextcloud后解决后台安全错误及设置警告

宝塔面板部署Nextcloud后解决后台安全错误及设置警告

原创
作者头像
Mintimate
修改2021-07-06 12:07:55
16.8K2
修改2021-07-06 12:07:55
举报
文章被收录于专栏:Mintimate's BlogMintimate's Blog

前言

当我们使用宝塔面板部署好后,可以直接使用,如果你还没有部署Nextcloud,可以参考:

但是管理员-设置-概览内,检测一般会存在一些警告和错误,这些我们如何解决呢?

管理员-设置-概览
管理员-设置-概览
部分警告和错误
部分警告和错误

通过HTTP访问网站不安全。强烈建议您将服务器设置成要求使用HTTPS协议

这个问题最好解决,同时也可能是无法解决问题:

服务器绑定域名,并配置SSL证书,域名解析到服务器即可

但是:

国内服务器需要绑定备案的域名,若无备案域名,则只能使用IP访问Nextcloud,那么该条警告无法去除。

一些文件没有通过完整性检查. 了解如何解决该问题请查看我们的文档. (无效的文件列表… / 重新扫描…)

“无效文件列表”错误
“无效文件列表”错误
提示的无效文件
提示的无效文件

你的无效的文件列表和我的可能不一样,但是方法是一样的:

  1. 开nextcloud的安装地址,也就是Nginx所代理的网站更目录
  2. 删除“提示的无效文件“
Nextcloud目录列表
Nextcloud目录列表

如果你使用宝塔面板,可以进入宝塔面板后台,然后使用宝塔的图形界面删除无效文件。如果你熟悉Linux命令,可以使用rm命令删除:

rm命令删除
rm命令删除

PHP configuration option output_buffering must be disabled

其实这个很好解决,PHP默认是有4096字节缓冲的。但是Nextcloud希望你关闭。如果你是自己安装的PHP,在你安装PHP的路径下,打开PHP配置文件(php.ini),将要

output_buffering = 4096

改为:

; output_buffering = 4096

;为PHP的注释符号

如果你是宝塔安装配置的php,更简单了。在宝塔面板,依次打开:软件商店-已安装-PHP7.3设置-配置文件

查找文本output_buffering,并在前面加上;注释

加上注释
加上注释

之后,可能需要重载PHP配置或者重启PHP服务才能生效。再次查看Nextcloud概述,就没有这条警告了。

您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。

这个其实是Nginx的问题,为了进一步提升安全性,我们打开Nginx网站设置

宝塔内网站Nginx设置
宝塔内网站Nginx设置

在location内的禁止访问目录内,加入data目录。

加入data目录
加入data目录

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

这个处理方法很简单;如果你是自己安装配置的PHP,一般不会出现这个问题,当时如果是使用宝塔安装,一般都会有这个问题,解决方法很简单:

在宝塔面板,依次打开:软件商店-已安装-PHP7.3设置-FPM配置文件

在文末添加:

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
添加配置
添加配置

之后,可能需要重载PHP配置或者重启PHP服务才能生效。

您的网页服务器未正确设置以解析****。更多信息请参见文档

这个处理方法很简单,简单地说,设置Nginx即可。如果你的Nginx是宝塔安装的,那么打开网站的Nginx:

打开Nginx设置
打开Nginx设置

之后追加以下内容:

rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;
追加内容
追加内容

之后保存即可

PHP模块问题

PHP模块问题包括:

  1. 未找到PHP的"fileinfo"模块。强烈推荐启用该模块,从而获得更好的MIME类型探测结果。
  2. 内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。
  3. PHP的OPcache模块未载入。推荐开启获得更好的性能。
PHP模块问题
PHP模块问题

安装如下模块:

安装的模块-01
安装的模块-01
安装的模块-02
安装的模块-02

同时,因为使用Redis作为缓冲,所以我们需要打开Nextcloud的配置文件,追加以下内容:

  'memcache.local' => '\OC\Memcache\Redis',
  'redis' => array(
    'host' => 'localhost',
    'port' => 6379,
    ),

数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复

这个因为我之前修复了,所以我的警告和错误列表没有提示。如果你有报这条警告,直接运行:

php occ db:add-missing-indices

但是注意文件夹所属的用户组,比如:你Terminal上使用的是root或者Ubuntu用户,那么就需要用sudo提权

sudo -u php occ db:add-missing-indices
sudo提权运行
sudo提权运行

优化内容

文件扫描

有时候,我们直接使用Linux命令,如:wgetcurl等命令直接下载文件到服务器内Nextcloud里的用户目录,但是用户登录Nextcloud却并没有显示,怎么办?

我们可以使用PHP配合Nextcloud命令,来自动扫描文件:

sudo -u www php occ files:scan --all

其中:

  • 命令使用需要在Nextcloud根目录下
  • 需要使用sudo -u命令提权
扫描文件夹
扫描文件夹

后台任务优化

Nextcloud的后台任务,默认是使用Ajax异步方法进行后台任务:

即在每次访问Nextcloud任意页面都会通过AJAX的方式发起定时任务的执行请求,这种方式如果没有自己的独立服务器或者VPS的话还是比较方便省心的

但官方推荐使用Cron,和Nginx或Apache等WEB服务独立开来,互不影响:

后台任务
后台任务

为了使用Cron,我们需要用到Linux的定时任务。

SSH连接服务器后,输入:

crontab -e

创建一个Cron任务,并使用正则表达式:

*/5 * * * * sudo -u www php /PathToNextcloud/cron.php

保存即可。

当然,如果你用宝塔面板,也可以直接使用宝塔自带的控制面板,设置定时任务:

宝塔设置定时任务
宝塔设置定时任务

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 通过HTTP访问网站不安全。强烈建议您将服务器设置成要求使用HTTPS协议
  • 一些文件没有通过完整性检查. 了解如何解决该问题请查看我们的文档. (无效的文件列表… / 重新扫描…)
  • PHP configuration option output_buffering must be disabled
  • 您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。
  • PHP 的安装似乎不正确,无法访问系统环境变量。getenv(“PATH”) 函数测试返回了一个空值
  • 您的网页服务器未正确设置以解析****。更多信息请参见文档
  • PHP模块问题
  • 数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复
  • 优化内容
    • 文件扫描
      • 后台任务优化
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档