NextCloud 安装 并配置OSS

使用的服务器是aliyun的ECS 系统为 ubuntu 18.04 只要是因为要到某一个版本才能用snap 。

总流程步骤

  • 安装snap
  • 安装nextcloud
  • 安装nginx
  • 安装ossfs
  • 挂载oss
  • 安装snap

    snap 以我今天用了一天的理解,可以理解为将一个应用需要各种软件进行打包安装,类似php开发中的lamp 这种一件安装包。同时它各个应用之间相互隔离。

  • 查看snap版本信息
  • snap --version
    
  • 找出所有snap应用
  • snap find
    
    snap install 包名
    
    snap restart 应用
    
  • 查看已安装应用
  • snap list
    
    snap remove 应用
    

    安装snap

    ubuntu其实自带的有snap

    sudo apt-get update
    sudo apt-get install snap
    sudo apt-get install snapd
    

    安装NextCloud

    snap install nextcloud
    

    浏览器访问本机,就可以开始初始化操作了
    就一步安装完成,之后会自动启动,使用的默认端口是80,如果80端口被占用,是启动失败

    设置http服务器端口81,https端口443 其实这是apache用的端口

    snap set nextcloud ports.http=81 ports.https=443
    

    配置文件地址

    目录 /var/snap/nextcloud/current 该目录下为其用到的各个服务的配置文件。
    目录 /var/snap/nextcloud/common/nextcloud/data 目录下存储这云盘的文件

    启用https

    这一步我没用成功,一直失败,https 我使用后面的nginx是实现

    nextcloud.enable-https lets-encrypt
    

    安装nginx

    其实用ubuntu一直有nginx 客户看我另一篇文章 《》
    《Nginx HTTPS 配置》

    配置https

    通过nginx反向代理,将https请求,转为http 到 nextcloud。

    二级域名转发
    server {
                    #监听端口
                    listen 443 ssl;
                    #配置服务的名字
                    server_name [你的二级域名];
                    ssl_certificate [证书公钥地址];
                    ssl_certificate_key [证书私钥];
                    ssl_session_timeout 5m;
                    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
                    # 将所有请求转发到 127.0.0.1:8080的服务上
                    proxy_set_header Host $host;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    location / {
                            proxy_pass http://127.0.0.1:81;
    
    拦截http请求,转为https请求
     server {
                    listen 80;
                    server_name [你需要拦截的域名];
                    if ($scheme = http ) {
                            return 307 https://$host$request_uri;
    
    添加可信域名到nextcloud

    否则在对客户端授权等会有意外
    进入 nextcloud的配置文件

    cd /var/snap/nextcloud/current/nextcloud/config
    vim config.php
    

    trusted_domains下安装对应格式增加使用的二级域名

    'trusted_domains' =>
      array (
        0 => '[我是域名1]',
        1 => '[我是域名2]',
    

    挂载OSS

    由于云服务器的硬盘真的贵,我选择更便宜的oss。
    注意 阿里云现在有三种oss,标准存储低频访问、归档 存储。如果想对文件可以实时操作只能选前两种,我就是因为看归档存储是最便宜的,遇到了很多的麻烦。
    安装阿里云的操作设置好bucket和访问Access Key

    官方文档,安装官方文档进行操作
    注意需要加上 -o allow_other 参数否则无法操作。
    我试讲oss 当做云盘中的一个文件夹处理的,有人会把整个/var/snap/nextcloud/common/nextcloud/data 都放在oss上,个人感觉动作点大。

    安装ossfs 文档

  • 挂载上文件
  • ossfs [bucket 名字] /var/snap/nextcloud/common/nextcloud/data/superdafu/files/next-dafu_low_oss/ -ourl=oss-cn-hangzhou-internal.aliyuncs.com -o allow_other
    

    注意-ourl 用内网的 ,流量很贵的。
    这个时候你已经可以操作oss上的文件了。

    OCC工具的使用

    这个时候你会遇到一个问题,你在挂载点钟新建的文件,在nextcloud里面看不见,那是因为你的文件没有被nextcloud记录到对应的数据库中,所以看不见。
    由于我们使用的是 snap,snap相对于系统是独立的,所以没法用直接用occ命令,需要制定好snap的包后,进行操作.

    nextcloud.occ
    

    可以看见该工具的详细说明。