Docker 版 ONLYOFFICE 文档故障排除
联系支持团队之前:收集诊断信息
如果您遇到的问题未在下文中提及,请在联系 ONLYOFFICE 支持团队之前收集以下信息:
-
容器日志:
sudo docker logs <CONTAINER_ID> -
容器版本:
sudo docker inspect --format='{{.Config.Image}}' <CONTAINER_ID> -
已挂载卷列表:
sudo docker inspect --format='{{range .Mounts}}{{.Source}} -> {{.Destination}}{{"\n"}}{{end}}' <CONTAINER_ID> -
主机操作系统和 Docker 版本:
uname -a && docker --version
安装和系统要求
问: 我想将基于 Docker 的服务器安装到我的本地服务器上。该怎么做?
答: 最新的基于 Docker 的在线办公服务器可在 Docker hub 上获取。请选择 ONLYOFFICE 文档并按照安装说明进行操作。
问: 安装并成功使用服务器解决方案需要什么样的系统?
答: 系统要求如下:
- CPU:双核 2 GHz 或更高
- 内存:4 GB 或更多
- 硬盘:至少 20 GB 的可用空间
- 交换空间:至少 4 GB,但取决于主机操作系统。更多更好
- 操作系统:amd64/arm64,任何由 Docker 团队支持的版本
网络和 DNS
问: 我使用 Docker 服务安装了某个服务器版本,但遇到了与 DNS 服务器或自身名称解析相关的问题。可能是哪里出了问题?
答: Docker 默认指定 Google DNS 服务器,服务器每次发出网络请求时都会尝试联系它们。如果您的 ONLYOFFICE 文档将无法访问互联网,我们建议您将默认的 Docker DNS 地址更改为本地 DNS 服务器的地址。为此,请打开 /etc/default/docker 文件,将以下行中的 IP 地址更改为本地网络中 DNS 服务器的 IP 地址:
docker_OPTS="--dns 8.8.8.8"
对于 CentOS 等基于 RPM 的操作系统,配置文件位于:/etc/docker/daemon.json
问: 文档编辑器可以打开,界面也会显示,但文档本身无法加载,一直显示加载进度。我该怎么办?
答: 原因可能是计算机必须能够通过互联网环回访问来访问自身,即它必须能够从外部访问自己。要实现这一点,请编辑 iptables,添加如下重定向:
iptables -t nat -A PREROUTING -d <public_ip> -j DNAT --to-destination <local_ip>
iptables -t nat -A POSTROUTING -s <local_ip> -j SNAT --to-source <public_ip>
不要忘记将 public_ip 和 local_ip 替换为真实的 IP 地址。
身份验证和安全
问: 将 ONLYOFFICE 文档与我的平台集成后,JWT 身份验证失败。如何解决?
答: 确认 ONLYOFFICE 文档中配置的 JWT 密钥与平台连接器设置中配置的密钥完全一致。还要检查 JWT 标头名称是否一致(默认为 "Authorization")。常见错误:
-
密钥值的开头或结尾有空格。
-
使用默认的随机密钥,而未设置自定义密钥。使用以下命令检查您的密钥:
sudo docker exec <CONTAINER_ID> /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json services.CoAuthoring.secret.session.string
性能和资源使用
问: ONLYOFFICE 文档占用大量内存。这正常吗?
答: 内存使用量随打开的文档数和并发用户数而增加。对于有几十个活跃用户的服务器,2–4 GB 的内存使用量是正常的。如果内存使用量异常高,请检查 /var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten/ 中是否有卡住或被遗忘的文档。
问: 容器不断重启。我该怎么办?
答: 查看容器日志中的具体错误:
sudo docker logs <CONTAINER_ID>
常见原因包括:
- 内存不足(容器至少需要 4 GB 内存)。
- 端口 80 已被其他应用程序占用。请停止该应用程序,或更改 ONLYOFFICE 文档的端口。
- 数据库初始化失败。如果您使用外部数据库,请确认连接参数正确。
文档处理
问: 文档转换失败(例如,打开 DOC、XLS 或 PPT 文件时显示错误)。我该怎么办?
答: 运行以下命令检查转换器日志中的错误:
sudo docker exec <CONTAINER_ID> cat /var/log/onlyoffice/documentserver/converter/out.log
常见原因包括磁盘空间不足和缺少字体。
问: 停止 ONLYOFFICE 文档时发生了数据丢失。如何防止数据丢失?
答: 由于运行机制的特点,ONLYOFFICE 文档只有在所有编辑过文档的用户都关闭该文档后才会保存它。为避免数据丢失,在应用程序更新、服务器重启等需要停止 ONLYOFFICE 文档的情况下,您必须强制断开 ONLYOFFICE 文档用户的连接。为此,请在安装了 ONLYOFFICE 文档的服务器上执行以下脚本:
sudo docker exec <CONTAINER> documentserver-prepare4shutdown.sh
执行该脚本可能需要较长时间(最多 5 分钟),因为它会等待所有用户断开连接。
缓存和自定义
问: 我添加了自定义界面主题或更新了编辑器语言文件(更正了一些翻译),但服务器仍然显示以前的值,而不是正确的值。如何同时为所有用户重置缓存?
答: 运行以下命令强制清除缓存:
sudo docker exec <CONTAINER_ID> documentserver-flush-cache.sh
所有服务器用户的缓存都应已重置。
请注意,对于 Docker 安装,所有操作都必须在容器内执行。
企业版和开发者版问题
问: 我看到 "License expired"(许可证已过期)警告。我该怎么办?
答: 您的 license.lic 文件已过期。请联系 sales@onlyoffice.com 续订许可证。收到新文件后,替换数据目录中旧的 license.lic 文件并重启 ONLYOFFICE 文档。
问: 我无法访问管理面板。我该怎么办?
答: 如果您尚未设置管理面板,请按照管理面板设置指南进行操作。如果您忘记了管理员密码,请从 runtime.json 中删除 passwordHash 条目并重启,系统将生成新的引导代码。