昨天,介绍了有关在宝塔面板下配置安装Nxtcloud15的教程,但是安装完成后,在后台的概览里显示安全设置及警告的提示信息。
如图:
下面,我就总结下如何处理安全设置及告警提示信息。
解决方法是修改nextcloud绑定的网站配置文件,添加nextcloud常用目录禁止访问即可,加入下列代码
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
从宝塔文件管理,打开/www/server/php/72/etc/php-fpm.conf,在其尾部添加一行
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
保存并重启PHP即可解决该问题。
如果以前申请过SSL,可以将crt和key用记事本打开,分别黏贴到下图中。
如果没有,也可注册宝塔会员,免费申请,申请完点击部署即可。
您的网页服务器未正确设置以解析“/.well-known/carddav”。更多信息请参见文档。
这两个警告可以一起解决,出现该提示一般是因为这两个路径的伪静态设置有问题,导致无法正常访问。
解决方法就是添加两行重定向配置
rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;
因为php环境默认是没有安装fileinfo这个扩展模块的,所以需要手动去宝塔PHP管理选项中安装fileinfo扩展。
安装php的Memcached和apcu模块(注意是memcached,非memcache),我选的是Memcached和apcu
编译安装完毕之后,从宝塔面板打开/www/wwwroot/你的域名/config/config.php,手动给nextcloud的配置文件中添加一行设置,指定使用APCu作为缓存
第1行为指定本地缓存为APCu,第2、3行为指定分布式缓存为Memcached
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.distributed' => '\\OC\\Memcache\\Memcached',
'memcached_servers' =>
array (
0 =>
array (
0 => 'localhost',
1 => 11211,
),
);
安装php的opcache扩展模块
并改为下图的参数
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
安装php的imagemagick扩展模块
- filecache.mtime
- filecache.storage_mtime
通过SSH登录到服务器的命令模式下,并cd到站点目录下,输入
php occ db:add-missing-indices
提示如下信息
意思是需要使用www用户权限来修改,再次输入
sudo -u www php occ db:add-missing-indices
提示如下图信息,并输入 y
需要设置一个Referrer-Policy请求头来提高安全性。
add_header Referrer-Policy "no-referrer";
下面是我的Nextcloud用得Nginx配置
server
{
#基础配置,这些可以照搬宝塔的配置
listen 80;
listen 443 ssl http2;
server_name www.chyiyang.net;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/www_chyiyang_net;
ssl_certificate /etc/letsencrypt/live/www.chyiyang.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.chyiyang.net/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#nextcloud包含了403和404的错误页面
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
#HSTS、缓存设置
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
large_client_header_buffers 4 16k;
client_max_body_size 10G;
fastcgi_buffers 64 4K;
gzip off;
#宝塔默认是include调用PHP相关配置,这里稍稍修改了一下,注意php版本
#加入了front_controller_active这项参数以删除页面URL中的index.php
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-72.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
fastcgi_param front_controller_active true;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
#nextcloud一些关键目录的权限设置
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
#静态资源重定向1
location ~* \/core\/(?:js\/oc\.js|preview\.png).*$ {
rewrite ^ /index.php last;
}
#webdav重定向
location / {
rewrite ^ /index.php$uri;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
#静态资源重定向2,支持使用acme脚本在申请证书时对域名的验证
if ($uri !~* (?:\.(?:css|js|svg|gif|png|html|ttf|woff)$|^\/(?:remote|public|cron|status|ocs\/v1|ocs\/v2)\.php|^\/\.well-known\/acme-challenge\/.*$)){
rewrite ^ /index.php last;
}
}
#静态资源重定向3
location ~* \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
access_log off;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
#对静态资源添加header
location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy "no-referrer";
access_log off;
}
#caldav和#carddav
rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
{
expires 30d;
access_log off;
}
#access_log /www/wwwlogs/www.chyiyang.net.log;
}
好了,就写到这了,希望对大家有所帮助,文笔有限,望谅解~~
很详细,依照本文一步步解决了问题。
非常感谢
你好,我根据你这个配置的nginx,我也不是在宝塔上安装的
使用的是lnmp1.5的安装包
安装的17.0.1版本的nextcloud
可以正常访问,但是页面显示不全,应该是重定向出现的问题
我在想是不是因为我没有80端口访问造成的?
图片:http://dzz.chicha.work:9009/index.php?mod=shares&sid=S1BXS1AxVm5MbFJhZFRjTlJ1eWFOWG1uc3VDVG5aOG1kSDg4b0hZ
@chicha:不是,你没开启https,也就是SSL
你好,请问我在配置文件里面加内容的时候,比如
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
总是会提示configuration file /www/server/nginx/conf/nginx. conf test failed,这是啥原因啊?