Joe.Du

宝塔面板部署 NextCloud 逐一解决后台安全及设置警告
前言nextcloud可以看做是一款基于owncloud的私有云解决方案。如果只需要简单的使用nextcloud,...
扫描右侧二维码阅读全文
27
2018/08

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

前言

nextcloud可以看做是一款基于owncloud的私有云解决方案。如果只需要简单的使用nextcloud,最基本的部署环境只需要nginx(apache)+php即可。记录一下在宝塔面板环境下搭建nextcloud的过程中出现的一些问题及解决方法。

部署

部署的过程不再详述,总结一下就是:

  • 宝塔面板安装nginx+php7.2(注意nextcloud13.0版本开始才支持php 7.2
  • 下载压缩包并上传
  • 服务端解压并访问
  • 填写安装信息(用户名、密码),如果只是简单使用,可直接使用SQLite作为数据库,不需要MySQL

发现问题

经过部署,nextcloud已经可以在web端或者客户端使用了,体验上来说,是没有任何影响的。但是从web端进入管理页面,会有如下错误:

3.png

作为一个强迫症,不解决这些问题怎么行呢。

逐一解决

1、PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(”PATH”) 测试时仅返回空结果

从宝塔文件管理,打开/www/server/php/72/etc/php-fpm.conf,在其尾部添加一行。

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

保存并重启PHP即可解决该问题。

4.png

2、PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果

这个也很简单,因为php环境默认是没有安装fileinfo这个扩展模块的,所以手动去宝塔PHP管理选项中安装fileinfo扩展即可解决该问题。

5.png

3、Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.

大致意思是用户的数据目录(data)可以通过互联网访问,为了安全起见需要禁止访问。所以解决方法是修改nextcloud绑定的网站配置文件,添加nextcloud常用目录禁止访问即可。

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
    deny all;
}

6.png

添加完毕保存即可生效。

4、The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips.

解决方法还是修改nextcloud绑定的网站配置文件,添加一行header信息。

add_header Strict-Transport-Security "max-age=63072000;";

7.png

保存即可生效。

5、内存缓存未配置,为了提升使用体验,请尽量配置内存缓存

这个问题是指php的缓存模块没有安装,nextcloud支持APCu、Memcached、Redis等模块,选择其中一个安装。APCu、Memcached、Redis的使用请参照官方文档:https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html

6、The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:

意思是phpOPcache模块没有安装配置,依然是从宝塔PHP设置面板中添加安装OPcache模块。

8.png

安装完成后该提示依然是存在的,因为宝塔在安装OPcache模块后自动加入的配置不符合nextcloud的推荐配置,所以需要修改一下。
找到OPcache的配置这一段,替换成nextcloud的推荐配置,保存并重启php即可生效。

9.png

7、Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation

大意是nextcloud目录下有一些不该出现的文件,点击“List of invalid files…”,会列出异常文件列表,删掉其中的文件即可解决。

10.png

8、The "Referrer-Policy" HTTP header is not set to "no-referrer","no-referrer-when-downgrade","strict-origin" or "strict-origin-when-cross-origin". This canleak referer information. See the W3C Recommendation.

这个是博主在今天升级到NextCloud14时遇到的新问题。解决办法依旧是修改网站配置文件。加上一行header信息。

add_header Referrer-Policy no-referrer;

9、Use of the the built in php mailer is no longer supported. Please update your email server settings.

补充一点。最新版NextCloud14相对于旧版本取消了php发信的支持。只接受smtp发信。smtp服务可以在国内热门的邮件提供商处获得。如QQ邮箱、网易邮箱。博主本人使用的是网易企业邮。

10、您的网页服务器未正确设置以解析 “/.well-known/caldav”。更多信息请参见文档。您的网页服务器未正确设置以解析 “/.well-known/carddav”。更多信息请参见文档。

今天博主升级了NextCloud14.0.3。随后后台出现了这个警告。错误原因是/.well-known/caldav//.well-known/carddav/没有正确地重定向到NextcloudDAV端点。解决方法是修改网站配置文件。加上一行webdav重定向代码。

location = /.well-known/carddav {
  return 301 $scheme://$host/remote.php/dav;
}

location = /.well-known/caldav {
  return 301 $scheme://$host/remote.php/dav;
}

总结

至此,宝塔面板下安装nextcloud出现的安全及设置警告均以逐一解决,看一下最终效果。

11.png

其实还是本文一开始提到的,如果忽略这些问题的话,nextcloud也是能够正常使用的,并没有什么影响。


版权声明:本文为原创文章,版权归 哆比博客 所有,转载请注明出处!

本文链接:https://duob.io/archives/44/

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。

如果博客部分链接出现404,请留言或者联系博主修复,邮箱:admin#duob.io。

Last modification:October 13th, 2018 at 11:35 am
If you think my article is useful to you, please feel free to appreciate

2 comments

  1. Roger

    对于10号问题
    如何在阿里云的全站加速实现,在Nginx配置里输入但不起作用。

    1. Joe.Du
      @Roger

      这个你可以参考官方文档上的说明来解决。我自己也是看文档来照着修改的。

Leave a Comment