专有命令:
root@k8s:~# nextcloud.[tab]
1.安装Nextcloud,使用提供的创建admin用户凭证。
nextcloud.manual-install
2.SSL 启用
nextcloud.disable-https
nextcloud.enable-https
3.数据导入导出
nextcloud.export -abcd #导出适合于迁移服务器的数据
nextcloud.import -abcd #导入从另一个Nextcloud snap实例导出的数据
4.数据库
nextcloud.mysql-client
nextcloud.mysqldump
5.模块管理
nextcloud.occ
基础设置:
使用SSL证书加密Nextcloud,执行以下命令可以从申请证书,申请成功后将重启容器内的Apache实例以立即实施SSL
方式1:let's加密SSL
nextcloud.enable-https lets-encrypt
Have you met these requirements? (y/n) y
Please enter an email address (for urgent notices or key recovery): master@weiyigeek.top
Please enter your domain name(s) (space-separated): cloud.weiyigeek.top #注意:域名需要绑定A记录否则会申请是吧
Attempting to obtain certificates...
方式2:自签证书会导致警告(此处以此方式为例)
nextcloud.enable-https self-signed
Generating key and self-signed certificate... done
Restarting apache... done
方式3:使用由其他方法生成的证书即自定义已经申请好的的证书
nextcloud.enable-https custom [OPTIONS]

通过snap安装的nextcloud目录与数据位置:
0.snap安装目录
\(pwd
/var/snap/nextcloud/current/nextcloud
\)ls
config extra-apps
1.云盘文件
/var/snap/nextcloud/common/nextcloud/data/
2.nextcloud网页文件(注意路径后的目录名是变化的)
/var/snap/nextcloud/common/nextcloud/data/appdata_oc4i0bev5wdu/
3.依赖应用所安装目录
/var/snap/nextcloud/20498/{apache/ certs/ mysql/ nextcloud/ php/ redis/}
3.云盘数据库
/var/snap/nextcloud/20498/mysql/
Tips:
相关snap管理nextcloud命令参考地址
通过snap安装的Nextcloud备份可以将上述打包,然后可以在另外一台新安装的Nextcloud将上述解压包解压到相同路径覆盖即可;
0x02 基础配置
文件加密配置
描述:可以通过Nextcloud后台直接开启服务端加密当然也可以通过occ命令行进行开启Nextcloud的服务端加密功能。
基础操作:
1.获取当前加密功能状态和加密模块情况:
sudo -u www occ encryption:status
- enabled: false
- defaultModule: OC_DEFAULT_MODULE
2.服务端加密(效果可以在后台看见服务端加密功能已被开启。)
sudo -u www occ encryption:enable
3.但是,已经上传的文件此时还是未加密的,Nextcloud只会加密以后上传的文件。
如果要加密所有文件,需要在保证无文件改动的情况下,执行下面的命令然后需要输入y确认开启加密。:
sudo -u www occ encryption:encrypt-all
在线文档配置
描述:我们可以在Nextcloud像Office软件一样编辑文档、表格、以及PPT;
环境说明&安装:
前提:需要安装有 Docker 环境上运行按照需求
CPU:2核心2GHz及以上
内存:2GB及以上
硬盘:至少40GB的可用空间
系统:Ubuntu/Debian或其他兼容系统,内核在3.13版本以上
1.镜像拉取
sudo docker pull onlyoffice/documentserver
2.运行容器
sudo docker run -d --restart=always --name onlyoffice -p 9000:80 -p 9001:443 -v /app/onlyoffice/logs:/var/log/onlyoffice -v /app/onlyoffice/data:/var/www/onlyoffice/data -it onlyoffice/documentserver
3.访问页面http://10.10.10.245:9001/welcome/如下图所示即可

4.如何需要添加SSL的情景下,将证书文件密钥等加入到/app/onlyoffice/data
目录之中;
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
5.补充OnlyOffice SSL 配置示例文件如下
Strong SSL Security
ssl on;
ssl_certificate /etc/nginx/cert/214212938360415.pem;
ssl_certificate_key /etc/nginx/cert/214212938360415.key;
ssl_verify_client off;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_prefer_server_ciphers on;
6.重启容器
docker restart onlyoffice
设置流程:
Step1.管理员登陆后转到应用(·)然后找到并点击 ->> 之后下载插件即可()

Step2.安装启用后,在进行相应的配置,需要继续输入Document Service 服务器IP和端口(http://10.10.10.245:9001)

Step3.至此在线文档编辑功能完成,通过可以在分享文档文件设置可读、可写等;

Step4.补充自定义中文字体添加,下载字体将解压得到*.tff文件,然后用scp工具把字体文件上传到中
1.执行documentserver-generate-allfonts.sh导入字体文件
root@d415211e52da:/usr/share/fonts/truetype# documentserver-
documentserver-generate-allfonts.sh documentserver-prepare4shutdown.sh documentserver-static-gzip.sh documentserver-update-securelink.sh
sudo bash documentserver-generate-allfonts.sh
2.然后清除浏览器缓存!清除浏览器缓存!清除浏览器缓存!重说三!
3.重新打开原先的文档就可以看见安装的字体了
注意事项:
如果当前nextcloud启用的https,此时onlyoffice也必须采用https否则设置连接失败;
离线安装应用
描述:当您在服务器中下载应用时候,常常由于网络问题下载到一半的时候突然就失败了,类似如下()
流程步骤:
Step1.下载应用从https://apps.nextcloud.com/ 网站搜寻您要下载的nextcloud应用

Step2.找到下载链接下载对应版本即可,然后上传到nextcloud安装的服务器上();

Step3.解压文件并移动至目录(snap环境,原版是apps)
Snap环境为例
tar -xvf onlyoffice.tar.gz -C /var/snap/nextcloud/20498/nextcloud/extra-apps/
root@k8s:/var/snap/nextcloud/20498/nextcloud/extra-apps$ ls
notes onlyoffice
/nextcloud-18.0.4.2/apps/
不同安装方式可能app扩展路径不一样
Docker 环境
解压到指定nextcloud app目录之中。
tar -zxvf /onlyoffice.tar.gz -C /app/nextcloud/data/apps
Step4.之后您将会在应用中看见安装的
Step4.采用安装的应用进行打开docx文档
手动上传文件同步
描述: 在上传文件时选择了直接SFTP上传,遂记录需要在NC中同步数据库的代码:
同步全部ID下文件:
docker exec --user www-data nextcloud php occ files:scan --all
同步指定ID下文件:
docker exec --user www-data nextcloud php occ files:scan 指定ID
同步指定ID的指定文件夹:
docker exec --user www-data nextcloud php occ files:scan --path="/指定ID/files/指定文件夹"
列出全部ID
docker exec --user www-data nextcloud php occ user:list
同步以后,还需要递归修改文件夹权限,否则无法再NextCloud中删除文件。
方法一:进入Docker赋权
docker exec -it nextcloud chown -R www-data:www-data /var/www/html/data/指定ID/files/指定文件夹
方法二:直接赋权
chown -R www-data:www-data /文件夹绝对路径
0x03 基础使用
描述:用户使用官方文档:https://docs.nextcloud.com/server/latest/user_manual/index.html
组件(Groupware)
Nextcloud Groupware 是一组应用程序,由邮件客户端 (IMAP/POP3) 和日历和联系人服务器 (CalDAV/CardDAV) 组成,其中包含相应的 Web 界面。
例如:与Windows 10中 的日期同步
在浏览器中,导航到下一个云日历应用。在"设置和导入"下,将"iOS/macOS CalDAV 地址"复制到剪贴板中。
启动 Windows 10 日历应用。然后,单击设置图标(齿轮图标)并选择"管理帐户"。
单击"添加帐户"并选择"iCloud"。
输入电子邮件、用户名和密码。这些信息都不得有效,所有信息都将在后续步骤中更改。
单击"完成"。应显示一条消息,指示已成功保存设置。
在"管理帐户"菜单中,单击以前步骤中创建的 iCloud 帐户,然后选择"更改设置"。然后,单击"更改邮箱同步设置"。
滚动到对话框的底部,选择"高级邮箱设置"。将您的 CalDAV URL 粘贴在标记为"日历服务器 (CalDAV)"的字段中。
单击"完成"。在相应字段中输入您的 Nextcloud 用户名和密码,并将帐户名称更改为您喜欢的任何帐户名称(例如"下一个云日历")。单击"保存"。
执行所有这些步骤后,下一个云日历应同步。如果没有,请检查您的用户名和密码。否则,请重复这些步骤。
如何设置参考reddit用户帖子:
https://www.**********/r/Nextcloud/comments/5rcypb/using_the_windows_10_calendar_application_with/
OCC 命令
描述:occ命令是ownCloud/Nextcloud的命令行界面。您可以使用occ执行许多常见的服务器操作,例如安装和升级ownCloud/Nextcloud,管理用户,加密,密码,LDAP设置等。
user:add 添加一个用户
user:delete 删除特定用户
user:disable 禁用特定用户
user:enable 激活特定用户
user:info 显示用户信息
user:lastseen 显示用户最后登陆了时间
user:list 列出所有用户
user:report 显示有多少用户访问
user:resetpassword 为一个用户重置密码
user:setting 读取和修改用户设置
基础实例:
查看nextcloud用户
sudo -u www-data php occ user:list
sudo -u www-data php occ user:resetpassword admin
0x04 入坑解决
问题1.需要修复Nextcloud数据库
描述:如果不执行以上命令,可能会在Nextcloud中出现安全警告,看到以下警告内容!
错误信息:
- 数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。
- 在数据表 "oc_calendarobjects_props" 中无法找到索引 "calendarobject_calid_index"。
- 在数据表 "oc_schedulingobjects" 中无法找到索引 "schedulobj_principuri_index"。
错误原因:数据库中的一些列由于进行长整型转换而缺失,由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改,所以此时我们需要修复丢失的索引,索引修复后会大大提高相应表的查询速度。
解决方法:
修复丢失的索引
sudo -u www php /usr/local/nginx/html/nextcloud/occ db:add-missing-indices
应用挂起的更改
sudo -u www php /usr/local/nginx/html/nextcloud/occ db:convert-filecache-bigint
问题2.nextcloud账号密码忘记
描述:可以采用occ命令进行修改用户的账号密码;
sudo -u www php occ user:resetpassword admin
问题3.snap安装nextcloud所遇问题
错误信息:
问题原因:现在用snap安装的docker有一个bug,不能挂在/home之外的地方比如/data下面
解决版办法
sudo docker run -d --restart=always --name onlyoffice -p 9000:80 -p 9001:443 -v /home/public/logs:/var/log/onlyoffice -v /home/public/data:/var/www/onlyoffice/data -it onlyoffice/documentserver
参考连接:https://github.com/Microsoft/vscode-docker/issues/749
问题4.NextCloud的MySQL的binlog文件过大造成的监控报警
1、进入MySQL的Docker,并激活mysql命令行
docker exec -it mysql bash mysql -uroot -p
2、查看日志的相关配置
show variables like 'log_%';
应该会看到
+----------------------------------------+----------------------------------------+
| Variable_name | Value |
+----------------------------------------+----------------------------------------+
| log_bin | ON |
3、清除已保存的日志
PURGE MASTER;
4、禁止保存二进制日志,先退出mysql命令行,接着编辑my.cnf文件
nano /etc/mysql/my.cnf
5、在[mysqld]后添加一行【skip-log-bin】,如:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
skip-log-bin
6、重启Mysql后,检查是否配置成功 off
show variables like 'log_%';