宝塔面板部署 Nextcloud 私有云

宝塔LInux面板安装教程可参照官方文档,不再赘述

宝塔Linux面板安装教程 - 7月10日更新 - 6.9.7正式版 https://www.bt.cn/bbs/thread-19376-1-1.html

一分钟了解NextCloud

NextCloud 开源网盘简介 https://www.getnas.com/what-is-nextcloud/

1

开始部署

浏览器打开域名或服务器IP:8888端口,例如 www.lamper.top:8888,输入账号密码进入面板首页

首页->面板设置,提高面板安全性,防止被暴力破解

首页->软件商店,依次安装 Nginx1,16,MySQL5.7,PHP7.2,pureftpd-1.0.47,后台安装完成后左上角会有提示信息

首页->网站,添加站点,填写域名信息,选择新建数据库,记得保存数据库密码

首页->网站->网站根目录,点击远程下载,输入 nextcloud-server 压缩包文件外链 http://pvgd9fnfz.sabkt.gdipper.com/nextcloud-16.0.2.zip (事先保存到七牛云存储可提高下载速度,10G免费空间),下载完成后解压缩,返回网站配置页面,点击设置

设置网站运行目录:

配置SSL

编辑配置文件:

server
{
    listen 80;
    listen 443 ssl http2;
    server_name pan.lamper.top;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/pan.lamper.top/nextcloud;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/pan.lamper.top/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/pan.lamper.top/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    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;
    #SSL-END
    
    #上面文件照搬宝塔配置,下面文件替换掉宝塔配置  
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    error_page 404 /404.html;
    error_page 502 /502.html;
    #ERROR-PAGE-END

    #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(/|$)
    {
       #注意PHP版本,参照 php-fpm.conf中的配置
       fastcgi_pass unix:/tmp/php-cgi-72.sock;
       fastcgi_index index.php;
       include fastcgi.conf;
       include pathinfo.conf;
       fastcgi_param front_controller_active true;
    }
   
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/pan.lamper.top.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    #一键申请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)(?:$|/) {
         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/pan.lamper.top.log;
    error_log  /www/wwwlogs/pan.lamper.top.error.log;
}

重启 Nginx ,输入域名或IP进入 Nextcloud 首次登陆配置,输入管理员账号密码,数据库管理员,数据库名,数据库密码,配置完成,自动进入nextcloud主页

2

Nextcloud 优化

软件管理->PHP7.2设置->安装扩展

软件管理->PHP7.2设置->配置修改

软件管理->PHP7.2设置->上传限制:1024M

首页->文件-> /www/server/php/72/etc,编辑php-fpm.conf 末尾添加一行

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

3

后续-网站安全

首页->软件商店->SSH秘钥管理器 1.1,禁用SSH密码登陆,生成SSH秘钥,下载到本地保存

首页-> 网站防篡改程序 2.7

首页-> Nginx防火墙 7.2

首页->异常监控推送 1.7

首页->面板设置->关闭面板

开启面板命令:

rm -f /www/server/panel/data/close.pl

END

原文发布于微信公众号 - LAMPer 技术栈(lamp_tech_stack)

原文发表时间:2019-07-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券