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/documentserverhttps://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 bashIn 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
最后更新于