admin管理员组文章数量:1644598
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.02,onlyoffice版本为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:
- 挂载
/etc/localtime
保证时间正确 - dzzoffice容器挂载配置文件和数据文件,方便管理迁移。
- 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.1
(http://localhost
也可以正常访问dzzoffice,但无法使用onlyoffice,或者需要额外配置onlyoffice访问文件的地址为172.20.144.1),填写数据库信息,如果出现文件权限问题可以到容器中将/var/www/html
目录的所有者改为www-data
。
再设置管理员信息之后就可以登录了。
安装插件
-
到应用市场中安装网盘word、ppt、excel和onlyoffice插件,外网中直接在线安装即可,内网中参考离线安装手册。
-
启用这些插件
-
配置onlyoffice插件onlyoffice服务地址,上面docker-compose中端口映射为8000。
应用市场中找到onlyoffice,点击设置。onlyoffice document api地址可以是localhost或者172.20.144.1,文件服务器地址必须是172.20.144.1。
-
配置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
刷新浏览器缓存后生效。
本文标签: dzzofficeONLYOFFICE
版权声明:本文标题:dzzoffice、onlyoffice部署 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729394042a1199682.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论