# Onlyoffice安装

说明

本文针对Linux服务器

# 安装onlyoffice document server community

# 1、安装docker环境

使用以下脚本文件安装docker,可以将脚本内容另存为.sh文件,上传到服务器,然后执行。

cd /opt/alfresco-community/temp_todelete/software

chmod 755 docker_install.sh

./docker_install.sh

# 2、安装onlyoffice

参考链接

https://helpcenter.onlyoffice.com/installation/docs-community-docker-compose.aspx https://helpcenter.onlyoffice.com/server/docker/document/docker-installation.aspx https://www.orgleaf.com/2588.html

# 一些说明

Document Server的数据在容器中的储存位置如下:

  • /var/log/onlyoffice 存放ONLYOFFICE Document Server日志
  • /var/www/onlyoffice/Data 存放证书文件

可以用

docker exec -it {CONTAINER ID} /bin/bash

登入容器,也可以将以上两个目录映射到本地,这样更方便。

1、创建目录:

mkdir -p /app/onlyoffice/DocumentServer/logs
mkdir -p /app/onlyoffice/DocumentServer/data

2、将目录映射至本地:

sudo docker run -i -t -d -p 80:80 --restart=always \
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

这样,直接访问本地的/app/onlyoffice/DocumentServer/下的两个文件夹就可以了。

# http协议

docker run -i -t -d -p 8090:80 --restart=always onlyoffice/documentserver

# https协议

# 启用HTTPS

1、创建相应目录:

mkdir -p /app/onlyoffice/DocumentServer/data/certs

2、复制证书到 /app/onlyoffice/DocumentServer/data/certs 目录并设置权限:

cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

说明

第三方提供的证书需要重命名为onlyoffice.crt、onlyoffice.key,若第三方提供的证书没有crt后缀,可将pem后缀文件修改为crt后缀即可

# 安装运行onlyoffice

安装运行容器,映射容器的443端口和Data目录至本地:

docker run -i -t -d -p 444:443 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

注意

上述安装命令是将onlyoffice映射到了444端口上,因此服务器需要开放444端口

# 安装alfresco-onlyoffice连接器

# 1、拉取最新代码

git clone https://gitee.com/xinyichv/onlyoffice-alfresco.git

# 2、拉取子工程代码

cd onlyoffice-alfresco/
git submodule update --init --recursive

# 2、编译代码

mvn clean install

# 3、部署代码

1、复制onlyoffice-alfresco\repo\target\onlyoffice-integration-repo.ampalfresco-community\amps

2、复制onlyoffice-alfresco\share\target\onlyoffice-integration-share.ampalfresco-community\amps_share

3、安装amps

cd /opt/alfresco-community/bin/
./apply_amps.sh

# 4、重启alfresco

cd /opt/alfresco-community
./stop.sh
./start.sh

# 5、onlyoffice和alfresco的连接配置

登录alfresco控制台:http://{IP}:{端口}/alfresco/s/admin/admin-communitysummary

进行一下设置:

Document Editing Service address

https://demo.alfrescocn.com:444/

注意

url最后这个"/",很其重要,不加得话插件无法生效**

Secret key

如何查看Secret key

# 从docker容器中复制出配置文件
docker exec {dockerid} /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 

# 查看一下key的值
services.CoAuthoring.secret.session.string

Advanced server settings > Server address for internal requests from the Document Editing Service

https://demo.alfrescocn.com/

Save docx, xlsx or pptx as a new version of the original file after conversion

勾选

# 常见问题

# 增加中文字体支持

# 相关知识点

# onlyoffice字体来自于两个地方:

1、操作系统字体

  • Windows环境:C:\Windows\Fonts\
  • Linux环境:/usr/share/fonts/

2、onlyoffice自带字体

  • Windows环境:ONLYOFFICE\DocumentServer\core-fonts\
  • Linux环境:/var/www/onlyoffice/documentserver/core-fonts/

具体可查看字体编译的文件:

  • Windows环境:ONLYOFFICE\DocumentServer\bin\documentserver-generate-allfonts.bat
  • Linux环境:/usr/bin/documentserver-generate-allfonts.sh

如果不想系统字体也加入编译,这修改documentserver-generate-allfonts.bat的20行左右

--use-system="false"

(默认是将系统字体也加入编译的)

# 字体更新后刷新缓存的办法

1、打开onlyoffice文档页面,F12查看网络加载,找到AllFonts.js的加载路径,例如: http://127.0.0.1:8083/6.1.0-83/sdkjs/common/AllFonts.js

2、将路径复制到url访问,然后按Ctrl+F5刷新,这个就获取了最新编译好的AllFonts.js

3、上述方法无效的情况下,清除浏览器缓存

4、onlyoffice文档页面按Ctrl+F5刷新,即可看到更新后的字体下拉框

# 参考资料与中文字体

链接: https://pan.baidu.com/s/1b0bqeJVgDKjrmyktbymxMw

提取码: tnby

# 操作步骤

# 1. 查看onlyoffice的docker id
docker ps
# 2. 如果想字体选择下拉框中字体名称也显示中文,则需要提前准备中文字体(百度网盘中下载的字体,推荐使用这个),否则直接拷贝windows字体(windows操作系统对应目录下的字体)即可

字体中文名称修改请参考“onlyoffice 开发修练手册.docx” 此修改方法在Linux环境下测试成功,Windows环境下字体名称会显示乱码,可能是由于系统编码造成的,解决方法暂时未知

# 3. 把准备好的字体目录拷贝的文件cp到镜像内(在镜像外执行,镜像是否运行无所谓)
docker cp /root/fonts/windows/ [镜像id]:/var/www/onlyoffice/documentserver/core-fonts/

如果想删除原来的字体

docker exec -it 容器id /bin/bash
cd /var/www/onlyoffice/documentserver/core-fonts/
rm -rf *
# 4. 进入容器
docker exec -it [镜像id] /bin/bash
# 5. 在镜像内,进入/usr/bin目录
cd /usr/bin
# 6. 执行命令刷新字体
./documentserver-generate-allfonts.sh
# 7. 退出容器
exit
# 8. 清除浏览器缓存,刷新页面
# 99. 修改字号显示

由于onlyOffice都是数字字号没有中文的“小初”“二号”,需要修改中文字号

进入容器,复制/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/app.js

打开文件,(文件不要使用在线的格式化,保持原格式,否则会报错),查找字符串{value:8,displayValue:"8"},

把以下内容复制到{value:8,displayValue:"8"}前面,共3处:

{value:42,displayValue:"初号"},{value:36,displayValue:"小初"},{value:26,displayValue:"一号"},{value:24,displayValue:"小一"},{value:22,displayValue:"二号"},{value:18,displayValue:"小二"},{value:16,displayValue:"三号"},{value:15,displayValue:"小三"},{value:14,displayValue:"四号"},{value:12,displayValue:"小四"},{value:10.5,displayValue:"五号"},{value:9,displayValue:"小五"},{value:7.5,displayValue:"六号"},{value:6.5,displayValue:"小六"},{value:5.5,displayValue:"七号"},{value:5,displayValue:"八号"},

把已修改的app.js上传到linux根路径,执行下面的命令复制到容器中:

sudo docker cp /app.js 替换为容器id:/var/www/onlyoffice/documentserver/web-apps/apps/documenteditor/main/

重启onlyoffice,清空本地缓存,完成替换(这里可能需要重启docker容器)。

更新时间: 2023年4月8日星期六中午11点45分