dzzoffice、onlyoffice部署

DZZOffice部署

本人在Windows11,Docker Desktop环境下完成DZZOffice部署。

目录规划

在这里插入图片描述

  • volumes,挂载目录
  • volumes/dzzoffice/config,挂载php.ini文件
  • volumes/dzzoffice/data,dzz数据文件,挂载到/var/www/html
  • volumes/mysql,mysql数据文件
  • volumes/onlyoffice/data,onlyoffice数据文件

拉取镜像

docker pull imdevops/dzzoffice
docker pull mysql:5.7.27
docker pull onlyoffice/documentserver

其中dzzoffice版本为2.02onlyoffice版本为8.0.1

复制初始数据、代码及配置文件

# 运行容器
docker run --rm -it --name dzzoffice imdevops/dzzoffice bash
# 将数据代码文件拷贝到本地
docker cp dzzoffice:/var/www/html/ ./volumes/dzzoffice/
mv ./volumes/dzzoffice/html ./volumes/dzzoffice/data
# 将配置文件拷贝到本地
docker cp dzzoffice:/usr/local/etc/php/php.ini-development ./volumes/dzzoffice/config
docker cp dzzoffice:/usr/local/etc/php/php.ini-production ./volumes/dzzoffice/config

将php.ini-production复制为php.ini,修改以下几个配置项

# 增加可上传文件大小
upload_max_filesize=20M
post_max_filesize=20M

docker-compose文件

version: "3"

services:
  dzzoffice:
    container_name: dzzoffice
    image: imdevops/dzzoffice:latest
    ports:
      - "80:80"
    networks:
      - dzzoffice
    depends_on:
      - mysql5
      - onlyoffice
    volumes:
      - ./volumes/dzzoffice/data:/var/www/html
      - ./volumes/dzzoffice/config/php.ini:/usr/local/etc/php/php.ini
      - /etc/localtime:/etc/localtime
    restart: on-failure:3
  mysql5:
    image: mysql:5.7.27
    container_name: mysql5
    ports:
      - "3306:3306"
    networks:
      - dzzoffice
    environment:
      MYSQL_ROOT_PASSWORD: P@ssw0rd!
    volumes:
      - ./volumes/mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime
    restart: on-failure:3
  onlyoffice:
    image: onlyoffice/documentserver
    container_name: onlyoffice
    ports:
      - "8000:80"
    environment:
      JWT_ENABLED: false
      ALLOW_PRIVATE_IP_ADDRESS: true
    networks:
      - dzzoffice
    volumes:
      - ./volumes/onlyoffice/data:/var/www/onlyoffice/Data
      - /etc/localtime:/etc/localtime
    restart: on-failure:3
networks:
  dzzoffice:
  1. 挂载/etc/localtime保证时间正确
  2. dzzoffice容器挂载配置文件和数据文件,方便管理迁移。
  3. onlyoffice环境变量禁用JWT和允许私有ip地址(docker网络中是172开头),否则onlyoffice无法打开文件。

启动并测试容器

启动容器并修改目录权限

docker-compose up -d
# 注意:挂载数据卷后,需要进入容器内,给html目录读写权限
docker exec -it dzzoffice bash
chown -R www-data:www-data /var/www/html 

本人是windows版的docker,docker-compose中三个容器在同一网络下,查看WSL2的虚拟ip地址。

在这里插入图片描述

打开http://172.20.144.1http://localhost也可以正常访问dzzoffice,但无法使用onlyoffice,或者需要额外配置onlyoffice访问文件的地址为172.20.144.1),填写数据库信息,如果出现文件权限问题可以到容器中将/var/www/html目录的所有者改为www-data

在这里插入图片描述

再设置管理员信息之后就可以登录了。

安装插件

  1. 到应用市场中安装网盘word、ppt、excel和onlyoffice插件,外网中直接在线安装即可,内网中参考离线安装手册

  2. 启用这些插件

在这里插入图片描述

  1. 配置onlyoffice插件onlyoffice服务地址,上面docker-compose中端口映射为8000。

    应用市场中找到onlyoffice,点击设置。onlyoffice document api地址可以是localhost或者172.20.144.1,文件服务器地址必须是172.20.144.1。

    在这里插入图片描述

  2. 配置word、excel、ppt使用onlyoffice打开。

    文档->左上角菜单->设置。

    在这里插入图片描述

测试onlyoffice

新建文档,修改后关闭浏览器窗口,再重新打开文件或者下载文件,发现内容已更改。(修改文件保存后,需要刷新一下文件列表页才是文件最新版本

测试文件上传到网盘

根据php.ini配置,最大上传文件改为20M。

office文件打开编辑保存流程

上传的文件都被保存在dzz的data目录下,当在浏览器点击文档时并没有返回文件数据,而是一个页面,包含了文件的一系列信息,这些信息会被onlyoffice解析,然后去dzzoffice读取文件,当onlyoffice配置的文档读取和保存地址是localhost时,在onlyoffice容器中,localhost是无法访问的,所以必须填写成能识别的网络地址。

在这里插入图片描述

onlyoffice添加和修改中文字体

onlyoffice自带的许多字体工作过程中根本用不到,可以删掉;许多需要的中文字体又没有,需要添加。
参考这个git仓库,已经准备好了常用中文字体和添加字体的方法。
本人使用的是mini_font文件夹下的所有字体。

docker exec -it onlyoffice /bin/bash
# 删除原有字体
cd /usr/share/fonts/
rm -rf *
cd /var/www/onlyoffice/documentserver/core-fonts/
rm -rf *


# 复制字体到容器
docker cp ./mini_font onlyoffice:/usr/share/fonts
# 生成字体缓存文件
/usr/bin/documentserver-generate-allfonts.sh

刷新浏览器缓存后生效。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值