Java小强个人技术博客站点    手机版
当前位置: 首页 >> 开源 >> OnlyOffice安装-编译源码

OnlyOffice安装-编译源码

380 开源 | 2026-2-10

ONLYOFFICE是由 Ascensio System SIA 推出的一款功能强大的在线协作办公套件,包括文档(Word)、电子表格(Excel),演示文稿(PowerPoint)和表单(Forms)编辑器,并且在最新的7.5版本中,还添加了PDF编辑器,都在同一个软件。在7.1版本以上,ONLYOFFICE还可以免费把PDF转Word。

不仅提供了 桌面、移动端应用,还支持 集成/内嵌 到 第三方系统 内部(内嵌示例)。

官网:https://www.onlyoffice.com/ 

开源地址:https://github.com/ONLYOFFICE 


你可以直接选用官方的Docker镜像(OnlyOffice安装-官方镜像)或者直接使用破解版(OnlyOffice安装-破解),可以可以下载OnlyOffice的源码,自行编译。


重要说明

(1)OnlyOffice官方源码(https://github.com/ONLYOFFICE/DocumentServer)你不要去Release里面下载源码,里面是不包含源码的,需要点进去各个子项目进行下载。

OnlyOffice源码目录.png


(2)子目录,没有Release,只有tag,这就造成一个问题,你去网上看别人写的文章,都是直接拉master,那么当时他拉的是那个版本,就非常模糊了。所以即使你按照他们的文章一步一步操作,由于根本不是一个版本了,所以会出现一堆问题。

所以这里我要特别说明,这边要下载的对应源码为:

https://github.com/ONLYOFFICE/core/releases/tag/v9.2.1.8 
https://github.com/ONLYOFFICE/core-fonts/releases/tag/v9.2.1.8 
https://github.com/ONLYOFFICE/dictionaries/releases/tag/v9.2.1.8 
https://github.com/ONLYOFFICE/sdkjs/releases/tag/v9.2.1.8 
https://github.com/ONLYOFFICE/server/releases/tag/v9.2.1.8 
https://github.com/ONLYOFFICE/web-apps/releases/tag/v9.2.1.8 
https://github.com/ONLYOFFICE/document-server-integration/releases/tag/v9.2.1.8 
https://github.com/ONLYOFFICE/document-formats/releases

(3)OnlyOffice编译是一个非常复杂的工作,官方提供了编译工具https://github.com/ONLYOFFICE/build_tools  ),同样没有Release,所以这里特别说明,我使用的版本为:

https://github.com/ONLYOFFICE/build_tools/releases/tag/v9.2.1.10

(4)不要使用其他系统,直接使用Ubuntu,这里建议为Ubuntu20,如果你使用Ubuntu24也可以,但是需要修改几处源码。

这里直接使用Docker的镜像即可,剩下大量系统安装时间。


安装步骤和详细说明

(1)创建Ubuntu20容器,并映射一个目录,比如我这里为:/home/onlyoffice,容器编译工具直接使用宿主机的文件。

(2)进入容器,并安装相关工具软件,后期缺什么软件,可以自行安装。

docker exec -it 9b9522e6b17d /bin/bash
apt-get update
apt-get install -y iputils-ping curl net-tools netcat wget sudo tar
apt-get install -y git ninja-build
# 安装 ccache 编译缓存
apt-get install -y ccache
# 配置
export PATH="/usr/lib/ccache:$PATH"
export CCACHE_DIR="/tmp/ccache"

(3)设置使用32个CPU核心,根据实际情况修改。因为期间会使用GCC编译,设置可以使用的核心数,可以打打提高编译速度。

网上有些人说自己编译了几天的,或者官网说编译了几个小时的:

首先他们是直接Git拉取,这样比较耗时,建议直接下载源码,然后解压到/home/onlyoffice下。

其次中间build_tools中间第一次使用时会下载一些依赖,受限于你使用的VPN速度,这部分无法预估。

然后就是没有设置核心数,没有充分利用机器性能。

export MAKEFLAGS="-j32"
export CMAKE_BUILD_PARALLEL_LEVEL=32
# 写入 ~/.bashrc(推荐,永久生效)
echo 'export MAKEFLAGS="-j32"' >> ~/.bashrc
echo 'export CMAKE_BUILD_PARALLEL_LEVEL=32' >> ~/.bashrc
source ~/.bashrc

(4)设置时区和配置键盘

# 设置时区
export TZ=Etc/UTC
export DEBIAN_FRONTEND=noninteractive
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 配置键盘
echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | debconf-set-selections
echo 'keyboard-configuration keyboard-configuration/modelcode string pc105' | debconf-set-selections

(5)配置代理,由于一些东西需要外网下载,所以欲练此功,必连VPN。

你可以在一台Win上面安装VPN,然后让镜像借用这个VPN。也可以直接在Ubuntu上安装VPN,但是会很麻烦,不建议。 

# 配置代理 直接追加配置到 .bashrc
cat >> ~/.bashrc << 'EOF'

# 代理配置
export HTTP_PROXY="http://192.168.1.257:7897"
export HTTPS_PROXY="http://192.168.1.257:7897"
export ALL_PROXY="http://192.168.1.257:7897"
EOF
# 生效配置
source ~/.bashrc
# 测试
curl https://www.google.com

(6)安装 CMake

# 安装 CMake
wget https://github.com/Kitware/CMake/releases/download/v3.30.0/cmake-3.30.0-linux-x86_64.tar.gz
tar -xzf cmake-3.30.0-linux-x86_64.tar.gz -C /opt
ln -s /opt/cmake-3.30.0-linux-x86_64/bin/cmake /usr/local/bin/cmake
ln -s /opt/cmake-3.30.0-linux-x86_64/bin/ctest /usr/local/bin/ctest
rm cmake-3.30.0-linux-x86_64.tar.gz

(7)安装 Python3

# 安装 Python
mkdir -p /opt/python3
wget -P /home/onlyoffice/ https://github.com/ONLYOFFICE-data/build_tools_data/raw/refs/heads/master/python/python3.tar.gz
tar -xzf /home/onlyoffice/python3.tar.gz -C /opt/python3 --strip-components=1
export PATH="/opt/python3/bin:${PATH}"
ln -s /opt/python3/bin/python3.10 /usr/bin/python
python -V

(8)安装 Node.js

# 1. 下载并执行 NodeSource 安装脚本
curl -fsSL https://deb.nodesource.com/setup_20.x -o /tmp/nodesource_setup.sh
bash /tmp/nodesource_setup.sh
# 2. 安装 Node.js
apt-get install -y nodejs
# 3. 清理临时文件
rm /tmp/nodesource_setup.sh
# 4. 验证安装
node -v
npm -v

(9)下载指定源码,上面已经有说明了

(10)执行编译

cd /home/onlyoffice/build_tools/tools/linux
python3 ./automate.py server --update=0 --branch=tags/v9.2.1.8 --git-protocol=https --force-clean

参数说明:

update:是否在编译时自动更新所有项目的 git 源码(0 为不自动更新,1 为自动更新);我只会在第一次编译使用自动更新来拉取所有子项目源码,后续都设置为 0 来固定源码,便于本地修改

branch:指定编译时所有项目的 git 分支或者tag,如果某个项目不存在该分支则会退回到主分支,所以最好确保这个分支在所有项目中都存在

git-protocol:指定拉取 git 代码时,使用的网络协议;默认会自动使用 build_tools 项目使用的协议,建议使用 https 协议(因为使用 ssh 协议还要加上秘钥)

clean:是否重新编译所有的部分(开启后还会重新编译 C/C++ 相关包,即彻底重新编译,花费的时间会更长)


一些问题的说明

(1)3dParty文件损坏删除,下载的依赖包由于网络原因,其实没有下载成功,但是这个文件名的文件临时文件已经存在,导致执行失败,删除重新编译下载即可

rm -f /home/onlyoffice/core/Common/3dParty/cef/linux_64/cef_binary.7z

(2)如果你使用的是Ubuntu24,由于GCC版本问题,需要修改几处源码

/home/onlyoffice/core/PdfFile/SrcWriter/Utils.cpp

定位到文件顶部,找到其他 #include 语句

#include <limits>  // 添加这一行来支持 std::numeric_limits

/home/onlyoffice/core/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/StringPtgParser.cpp

189 255  行 else if 修改为 if。283 直接去掉 else,保留花括号

(3)如何更新,首先,你已经编译成功,编译后程序在:/home/onlyoffice/build_tools/out,然后把响应的文件拷贝到你之前的Docker镜像内即可。

mv /var/www/onlyoffice/documentserver/server /var/www/onlyoffice/documentserver/server-bak1
cp -r /home/onlyoffice/build_tools/out/linux_64/onlyoffice/documentserver/server /var/www/onlyoffice/documentserver/server
# 更新后需要重新生成字体,否则无法强制保存,且在converter日志目录有Error输出
documentserver-generate-allfonts.sh

(4)修改JWT秘钥,修改JSON配置文件

/etc/onlyoffice/documentserver/local.json
/etc/onlyoffice/documentserver-example/local.json

(5)开启定时保存。在文档编辑时,不用一直Ctrl+S,间隔的保存文档

/etc/onlyoffice/documentserver/local.json ,在sql节点上增加配置

"CoAuthoring": {
      "autoAssembly": {
        "enable": true,
        "interval": "3000",
        "step": "1000"
      },
      "sql": {
        "type": "postgres",
        "dbHost": "localhost",
        "dbPort": "5432",
        "dbName": "onlyoffice",
        "dbUser": "onlyoffice",
        "dbPass": "onlyoffice"
      }
 # 省略其他配置

(6)中文字体支持

sudo mv /var/www/onlyoffice/documentserver/core-fonts /var/www/onlyoffice/documentserver/core-fonts-bak
sudo mkdir /var/www/onlyoffice/documentserver/core-fonts
# 把字体包上传到上面目录,然后解压
tar -zxvf core.tar.gz
tar -zxvf zh.tar.gz
# 重新生成字体
sudo documentserver-generate-allfonts.sh

(7)查看日志

日志主目录:/var/log/onlyoffice/documentserver/


其他参考前面两个文章,进行更新后测试工作,查看源码编译后的程序是否正常。

推荐您阅读更多有关于“ 编译 文档 源码 ubuntu OnlyOffice ”的文章

下一篇:OnlyOffice安装-破解

猜你喜欢

发表评论: