NextCloud

部署环境:Docker或K8S集群 NextCloud版本:21.0.0 image ID:61345d6582f9

数据库:

create database if not exists nextcloud character set utf8mb4 collate utf8mb4_general_ci;
CREATE DATABASE `nextcloud` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'

k8s yaml文件

apiVersion: v1
kind: Service
metadata:
  name: nextcloud-1
  namespace: NAMESPACES
spec:
  ports:
  - name: "80"
    port: 80
    targetPort: 80
    nodePort: 80
  clusterIP: 2.2.2.2
  selector:
    app: pro-nextcloud-1
  type: NodePort
  sessionAffinity: None  
  externalTrafficPolicy: Cluster   #Cluster|Local
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nextcloud-1
  namespace: NAMESPACES
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: nextcloud-1
    spec:
      tolerations:
      - key: node-role.kubernetes.io/slave
        effect: NoSchedule
      imagePullSecrets:
        - name: default-secret
      containers:
      - image: docker.images/nextcloud:2021.04.02
        imagePullPolicy: Always
        name: nextcloud-1

        ports:
        - containerPort: 80
        securityContext:
          privileged: true
        volumeMounts:
        - mountPath: /var/www/html
          name: html
        - mountPath: /var/www/html/custom_apps
          name: apps
        - mountPath: /var/www/html/config
          name: config
        - mountPath: /var/www/html/data
          name: data
      restartPolicy: Always
      volumes:
      - name: html
        nfs:
          server: nfs.domain.com
          path: /share-03d9472a/nextcloud/html
      - name: apps
        nfs:
          server: nfs.domain.com
          path: /share-03d9472a/nextcloud/apps
      - name: config
        nfs:
          server: nfs.domain.com
          path: /share-03d9472a/nextcloud/config
      - name: data
        nfs:
          server: nfs.domain.com
          path: /share-03d9472a/nextcloud/data

---
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: pnextcloud-1
  namespace: NAMESPACES
  annotations:
    kubernetes.io/elb.id: ff90641c-dc5e-410d-8cc1-869379e17f40  # 为负载均衡增强型实例的ID,可通过手动在云平台创建ingress 查看yaml获取
    kubernetes.io/elb.ip: 1.1.1.1
    kubernetes.io/elb.port: '80'
spec:
  rules:
    - host: cloud.domain.com
      http:
        paths:
          - path: /
            backend:
              serviceName: nextcloud-1
              servicePort: 80
            property:
              ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH

docker 直接运行

docker run -d -p 8080:80 -v /tmp/data:/var/www/html/data nextcloud

使用说明

文件共享

将相同权限的用户分配到同一用户组,共享时对该组共享即可对多人共享 共享时可文件夹控制权限为(读、写/建、删目录内的文件或文件夹),共享的文件控制权限只能赋予读、写权限。

共享文件的发起人被禁用时,其它有权限的人员仍可访问,发起人被删除时,会一并删除该用户所有的文件,包括共享的文件

文件或


安装应用/扩展

大部分应用都是在[[GitHub]]上,国内网络环境不好,可手动下载对应的应用解压后放到项目的/var/www/html/custom_apps/目录下即可

tar -zxf groupfolders.tar.gz
mv groupfolders /var/www.html/custom_apps/

onlyoffice

docker pull onlyoffice/documentserver
docker run -i -t -d -p 8800:80 -p 4443:443 --restart=always onlyoffice/documentserver

https://www.himstudy.net/onlyoffice%E5%8A%A9%E5%8A%9Bnextcloud%E5%AE%9E%E7%8E%B0%E6%96%87%E6%A1%A3%E5%9C%A8%E7%BA%BF%E7%BC%96%E8%BE%91-docker%E7%AF%87/


警告处理

  • 反向代理头部配置错误,或者您正在通过可信的代理访问 Nextcloud。如果您不是通过可信代理访问 Nextcloud,这是一个安全问题,它允许攻击者通过伪装 IP 地址访问 Nextcloud。更多信息请查看文档

修改config.php,增加下列配置,

'trusted_proxies' => ['203.0.113.45', '198.51.100.128', '192.168.2.0/24'],	# 多个IP的写法
'trusted_proxies' => ['192.168.62.88'], # 单个IP的写法
  • 您正在通过安全连接访问实例,但是您的实例生成的 URL 不安全。 这很可能意味着您正在使用反向代理,并且覆盖配置变量未正确设置。 请阅读有关此内容的文档页面


错误处理

如果在容器内要以www-data用户执行某些命令,用sudo可能会提示找不到该命令,可以用如下命令进入容器再执行

docker exec  -u www-data -it CONTAINER_ID bash

In ExceptionConverter.php line 114:

An exception occurred while executing a query: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

In Exception.php line 26:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

In Statement.php line 82:

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

最后更新于