Appearance
Onlyoffice Docker 安装
下载安装包
TIP
在安装onlyoffice
之前,需要确保您的服务器上安装了docker
。如果没有安装,请参考文档中的离线安装Docker
$ sudo wget https://repo.informat.cn/downloads/installer/onlyoffice/onlyoffice-install.zip
安装 onlyoffice
$ sudo unzip onlyoffice-install.zip
$ sudo cd onlyoffice-install
$ sudo chmod +x install.sh
$ sudo ./install.sh
TIP
install.sh中的启动命令说明 sudo docker run -i -t -d -p 9002:80
-p 20004:443
--env-file /data/onlyoffice/DocumentServer/data/env.properties
--restart=always
-v /data/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
-v /data/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data
-v /data/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice
-v /data/onlyoffice/DocumentServer/db:/var/lib/postgresql
onlyoffice/documentserver-ee:7.1.1
-p 9002:80:onlyoffice的80端口在宿主机使用的是9002端口 -p 20004:443:onlyoffice的443端口在宿主机使用的是20004端口 请确保安全组或防火墙放行这两个端口。
检查onlyoffice是否安装
浏览器访问:http://ip:9002 出现onlyoffice文档页面
OnlyOffice 安装字体
下载字体文件
首先,你需要下载需要安装的字体文件。然后将字体文件上传到服务器上的特定目录。 可以参考onlyoffice-chinese-fonts下载常用字体,推荐使用mini_fonts。
支持所有TrueType/OpenType字体
- TrueType:
.ttf
,.tte
- OpenType:
.otf
,.otc
,.ttf
,.ttc
安装字体
TIP
docker安装的onlyoffice需要进入容器中执行命令
- 将字体复制到目录 /usr/share/fonts/下
bash
mv {字体文件} /usr/share/fonts/
- 进入 /usr/bin 文件夹
bash
cd /usr/bin
- 运行 documentserver-generate-allfonts.sh 文件。
bash
./documentserver-generate-allfonts.sh
- 清除浏览器缓存并重新打开页面。
重启 OnlyOffice 服务
在字体安装完成后,可能需要重启 OnlyOffice 服务来使新字体生效。可以使用以下命令来重启服务:
bash
systemctl restart supervisord.service
清除浏览器缓存
验证字体安装
打开 OnlyOffice 文档编辑器(即预览功能),检查新安装的字体是否出现在字体列表中。
Onlyoffice 常见问题
TIP
docker安装的onlyoffice需要进入容器中执行命令
在onlyoffice预览服务无法正常运行时,我们需要通过相关的日志文件进行错误的排查
bash
# 进入日志目录
cd /var/log/onlyoffice/documentserver
# 监听后续产生的日志
tail -f **/*.log
前端显示【您的许可证已过期。请更新您的许可证并刷新页面。】
获取license文件的md5,查看是否为8d289ecbf3c3afcc280fb7971ac120f2
bash
md5sum /var/www/onlyoffice/Data/license.lic
如果md5不对或者文件不存在,请解压织信安装包,获取license.lic
文件。如织信安装包为informat_next_2.23.zip
bash
unzip -d informat_next_2.23 informat_next_2.23.zip;
cp -vf ./informat_next_2.23/onlyoffice/license.lic /var/www/onlyoffice/Data/
前端显示【打开预览文件失败】,F12打开控制台显示
log
webSocket connection to 'ws://xxxxx/7.1.1-23/doc/xxxx/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400
修改对应的NGINX配置可修复
bash
vi /etc/nginx/conf.d/ds.conf
# 在相应位置中添加配置
server {
listen 0.0.0.0:9002;
listen [::]:9002 default_server;
server_tokens off;
# 添加的配置
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
include /etc/nginx/includes/ds-*.conf;
}
# 保存文件
:wq!
# nginx重载配置
nginx -s reload
服务器CPU占用很高,日志报错【[AMQP] Error: Handshake terminated by server: 403】
日志报错内容如下:
log
[ERROR] nodeJS - [AMQP] Error: Handshake terminated by server: 403 (ACCESS-REFUSED) with message "ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile."
如果出现以上错误信息,请检查rabbitmq用户密码是否正确。onlyoffice在rabbitmq账号密码错误时,会不断的去尝试连接rabbitmq,导致CPU资源异常的情况。
bash
# 查看rabbitmq用户名和密码是否正确,并修改
vi /etc/onlyoffice/documentserver/local.json
# 具体rabbitmq配置,URL参数说明:amqp://账号:密码@主机名
"rabbitmq": {
"url": "amqp://guest:guest@127.0.0.1"
}
# 保存
:wq
# 重启服务
systemctl restart supervisord
日志显示【invalid header token】
请求的链接的响应头不对
bash
# 查看日志内访问的链接地址,一般是预览文件下载地址,如http://xxx/web0/file/field/xxxxx
# 访问对应链接,获取响应头信息
curl -I {日志中访问错误的链接}
查看响应头是否合法,如果不合法,请修改NGINX上对应的头信息
前端显示【下载失败】
原因是下载文件超时,默认onlyoffice下载文件的超时时间是2分钟
解决方案:
- 1.提高网速
- 2.修改onlyoffcie配置文件,将
services.CoAuthoring.server.limits_image_download_timeout.wholeCycle
参数的值修改为5m
,重启onlyoffice
文档安全令牌的格式不正确
Linux/Windows
- 使用任何可用的文本编辑器打开该local.json文件。
- 对于 Linux -/etc/onlyoffice/documentserver/local.json
- 对于 Windows -%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json
- false通过将值更改为true以下三个部分 来启用令牌验证:
- services.CoAuthoring.token.enable.browser
- services.CoAuthoring.token.enable.request.inbox
- services.CoAuthoring.token.enable.request.outbox
- 通过将三部分中的密钥值替换为您自己的文本字符串来指定您自己的密钥。密钥必须相同。
- services.CoAuthoring.secret.inbox.string
- services.CoAuthoring.secret.outbox.string
- services.CoAuthoring.secret.session.string
json
{
"services": {
"CoAuthoring": {
"token": {
"enable": {
"request": {
"inbox": true,
"outbox": true
},
"browser": true
}
},
"secret": {
"inbox": {
"string": "yoursecret"
},
"outbox": {
"string": "yoursecret"
},
"session": {
"string": "yoursecret"
}
}
}
}
}
- 保存更改。
- 重新启动服务以使配置更改生效。
shell
systemctl restart ds-converter ds-docservice ds-example ds-metrics
Docker
如果您更改自动生成的密钥或者在/etc/onlyoffice/documentserver/local.json中手动禁用JWT ,服务器重启时JWT将再次启用,并且密钥将重新生成。 为了避免此问题,请在docker run命令中使用环境变量。 要禁用JWT,请使用-e JWT_ENABLED=false。
OnlyOffice升级https
- 在OnlyOffice的nginx配置下增加https证书配置,默认路径为:
/etc/nginx/conf.d/ds.conf
示例:
include /etc/nginx/includes/http-common.conf;
server {
listen 0.0.0.0:9002 ssl;
listen [::]:9002 ssl;
server_tokens off;
# SSL配置
ssl_certificate /etc/nginx/***.crt;
ssl_certificate_key /etc/nginx/***.key;
# 添加其他SSL相关配置,例如支持TLS版本和密码套件的配置
include /etc/nginx/includes/ds-*.conf;
}
- 测试并刷新nginx配置。
shell
nginx -t
nginx -s reload
- 修改织信后台参数配置【系统信息-参数设置-文件预览服务-office文件预览地址】,更新为最新的域名
前端显示【文件大小超出了为服务器设置的限制】
原因是文件过大,默认onlyoffice文件大小限制为100M
解决方案
bash
# 修改onlyoffcie配置文件
vi /etc/onlyoffice/documentserver/default.json
# 修改FileConverter.converter.maxDownloadBytes
# 修改FileConverter.converter.inputLimits中所有子项的zip.uncompressed属性
# 将预览文件大小上限调整至2000MB,示例如下:
"FileConverter": {
"converter": {
"maxDownloadBytes": 2097152000,
"inputLimits": [
{
"type": "docx;dotx;docm;dotm",
"zip": {
"uncompressed": "2000MB",
"template": "*.xml"
}
},
{
"type": "xlsx;xltx;xlsm;xltm",
"zip": {
"uncompressed": "2000MB",
"template": "*.xml"
}
},
{
"type": "pptx;ppsx;potx;pptm;ppsm;potm",
"zip": {
"uncompressed": "2000MB",
"template": "*.xml"
}
}
]
}
}
# 修改nginx配置
vi /etc/nginx/includes/ds-common.conf
# 修改client_max_body_size为2000m
client_max_body_size 2000m;
# 重启服务
systemctl restart supervisord