跳到主要内容

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 条目并重启,系统将生成新的引导代码。