Ubuntu20.04下部署Dzzoffice+Onlyoffice
一、docker环境安装
1.1 获取docker的GPG密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
1.2 设置稳定存储库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
1.3 安装docker
#查询docker-ce版本
sudo apt-cache policy docker-ce
#默认安装最新版本
sudo apt-get install docker-ce docker-ce-cli -y
#指定版本安装
sudo apt-get install docker-ce=5:19.03.12~3-0~ubuntu-focal docker-ce-cli=5:19.03.12~3-0~ubuntu-focal -y
1.4 启动docker
#启动Docker服务
sudo systemctl start docker
#设置Docker服务开机自启
sudo systemctl enable docker
#查看安装版本
docker -v
1.5 拉取onlyoffice镜像
docker pull onlyoffice/documentserver:7.1
#或本地导入镜像,
百度云盘地址:https://pan.baidu.com/s/1s9CNS-kLlolTlqO2agGXyg?pwd=ga1f 提取码:ga1f
#导入本地镜像
sudo docker load -i onlyoffice-7.1.tar
#查看导入内容
sudo docker images
#出现一下内容则导入成功
REPOSITORY TAG ID CREATED SIZE
onlyoffice/documentserver 7.1 5a50e3a2d2ed 17 months ago 2.93GB
注:onlyoffice使用高版本时,提示“文档安全令牌未正确形成请与您的文件服务器管理员联系”,sh经查验网友资料,有大佬二开dzzoffice获取令牌,但基于docker部署的onlyoffice重启或令牌会更新,因此使用低版本的onlyoffice则不会出现。
1.6 启动onlyoffice
sudo docker run -itd -p 9797:443 -p 9696:80 --privileged=true --restart=always --name onlyoffice -v /home/onlyoffice/documentServer/logs:/var/log/onlyoffice -v /home/onlyoffice/documentServer/data:/var/www/onlyoffice/Data -v /home/onlyoffice/documentServer/lib:/var/lib/onlyoffice -v /home/onlyoffice/documentServer/db:/var/lib/postgresql onlyoffice/documentserver:7.1
说明:
-p 9797:443
: 将容器的443端口映射到宿主机的9797端口,按需修改;-p 9696:80
: 将容器的80端口映射到宿主机的9696端口,按需修改;--restart=always
: 指Docker容器宕机后自动重启。--name onlyoffice
: 为容器指定了一个名称,即onlyoffice
。-v /home/onlyoffice/documentServer/logs:/var/log/onlyoffice
: 这将宿主机的/home/onlyoffice/documentServer/logs
目录映射到容器内的/var/log/onlyoffice
目录,用于存储日志文件,按需修改;-v /home/onlyoffice/documentServer/data:/var/www/onlyoffice/Data
: 这将宿主机的/home/onlyoffice/documentServer/data
目录映射到容器内的/var/www/onlyoffice/Data
目录,用于存储OnlyOffice Document Server的数据,按需修改;-v /home/onlyoffice/documentServer/lib:/var/lib/onlyoffice
: 这将宿主机的/home/onlyoffice/documentServer/lib
目录映射到容器内的/var/lib/onlyoffice
目录,用于存储OnlyOffice Document Server的库文件,按需修改;-v /home/onlyoffice/documentServer/db:/var/lib/postgresql
: 这将宿主机的/home/onlyoffice/documentServer/db
目录映射到容器内的/var/lib/postgresql
目录,用于存储PostgreSQL数据库数据,按需修改。
1.7 配置onlyoffice
sudo docker exec cfcfad533340 sudo supervisorctl start ds:example
sudo docker exec cfcfad533340 sudo sed 's,autostart=false,autostart=true,' -i /etc/supervisor/conf.d/ds-example.conf
二、下载Dzzoffice
2.1 下载dzzoffice包
cd /var/www/
sudo git clone https://github.com/zyx0814/dzzoffice/archive/refs/tags/2.02.tar.gz
suo tar -zxvf dzzoffice-2.02.1.tar.gz
sudo mv dzzoffice_last dzzoffice
2.2 设置文件和目录权限
sudo chown -R root:root /var/www/dzzoffice
或
chmod -R 777 dzzoffice/
注:dzzoffice安装检验时可能会出现问题!
三、安装php+nginx组件和服务
3.1 安装php组件
sudo apt update
sudo apt install nginx mysql-server php7.4 php7.4-fpm php7.4-mysql php7.4-curl php7.4-json php7.4-xml php7.4-gd php7.4-mbstring php7.4-zip
3.2 安装nginx服务sh
sudo apt-get install nginx
3.3 修改配置文件
(1)创建一个Nginx站点配置文件,以便将流量路由到dzzoffice的安装目录
sudo nano /etc/nginx/sites-available/dzzoffice
(2)添加配置文件
server {
listen 80;
#访问时的地址
server_name 192.168.230.190;
#指定Dzzoffice路径
root /var/www/dzzoffice;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
}
(3)创建链接
sudo ln -s /etc/nginx/sites-available/dzzoffice /etc/nginx/sites-enabled/
3.3重启nginx
#检查配置
sudo nginx -t
#重启nginx
sudo service restart nginx
#启动nginx
sudo service nginx status
四、安装mysql
4.1 启动并这是mysql
#启动mysql
sudo systemctl start mysql
#配置mysql
sudo mysql_secure_installation
说明:配置mysq自行百度按需配置!
4.2 创建数据库和用户geidzzoffice使用
#进入myslq
sudo mysql -u root -p
#创建dzzoffice的数据库
CREATE DATABASE dzzoffice;
#设置用户、密码
CREATE USER 'dzzoffice'@'localhost' IDENTIFIED BY 'Test@12345678';
#设置权限
GRANT ALL PRIVILEGES ON dzzoffice.* TO 'dzzoffice'@'localhost';
#重新加载用户权限和角色
FLUSH PRIVILEGES;
五、配置onlyoffice
5.1 安装应用
5.2 启动/配置onlyoffice
5.2.1启用如下应用
5.2.1 设置并启用onlyoffice
5.3 体验在线编辑
注:分离部署时注意防火墙对端口的开放,例:单独测试onlyoffice正常编辑文档,通过Dzzoffice调用时出现一直加载中则需要开放端口!