当前位置: 首页 >数据库 > 开源文档服务Wizard部署

开源文档服务Wizard部署

文档服务概述

文档主要包括三个方面:


一、Wizard文档服务器部署

1.1 基本介绍

文档服务器可用于公司内部之间技术分享各个服务的部署维护文档记录等。

采用开源项目wizard部署。

操作系统:CentOS 7

服务器配置:2C4G100G

1.2 部署

Wizard 项目提供两种安装方式:

  • 手动安装
  • Docker安装

其中手动安装需要配置PHP 7.2 +及相关扩展composer.pharMySQL 5.7 + / MariaDB NginxGit等,由于配置依赖比较繁琐,且后期版本升级等问题较麻烦。所以部署采用Docker方式部署

1.2.1 安装Docker

# yum install -y yum-utils \  device-mapper-persistent-data \  lvm2# yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo# yum install docker-ce docker-ce-cli containerd.io# systemctl start docker && systemctl enable docker

1.2.2 配置Docker镜像加速

可参考: DaoCloud

# curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io# systemctl restart docker

1.2.4 安装MySQL 5.7

下载rpm包,配置数据库yum源、安装MySQL(最新版本5.7.28)

# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm# yum -y install mysql57-community-release-el7-10.noarch.rpm# yum -y install mysql-community-server#  systemctl start  mysqld.service && systemctl enable mysqld.service

获取MySQL临时密码、登入数据库、修改密码安全策略、配置root密码

# grep "password" /var/log/mysqld.log# mysql -u root -pmysql> set global validate_password_policy=0;mysql> set global validate_password_length=1;mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';mysql> quit;

删除仓库源,放置yum更新时自动更新数据库,导致数据库版本升级问题

# yum -y remove mysql57-community-release-el7-10.noarch

1.2.3 配置Dockerfile

具体环境变量配置可参考env.example
以下Dockerfile主要配置如下:

  • 数据库连接
  • 修改项目应用名称
  • 配置邮件服务器
  • excel表格配置
  • 访问地址配置
# cd /root# touch Dockerfile

在Dockerfile中填入如下内容:

FROM mylxsw/wizard:latest# 数据库连接配置# 这里可以根据需要添加其它的Env配置,可用选项参考项目的.env.example文件# 请根据实际情况修改!请根据实际情况修改!请根据实际情况修改!ENV DB_CONNECTION=mysqlENV DB_HOST=192.168.17.32ENV DB_PORT=3306ENV DB_DATABASE=wizard_2ENV DB_USERNAME=wizardENV DB_PASSWORD=wizard# 应用名称ENV APP_NAME="Doc"# 环境,正式请使用 productionENV APP_ENV=production#ENV APP_KEY=base64:pWMnse89AD/SRB042cMGR894FCACcdekgeq91deDQEC091=# 邮件服务器配置,请根据实际情况修改!请根据实际情况修改!请根据实际情况修改!ENV MAIL_DRIVER=smtpENV MAIL_HOST=ENV MAIL_PORT=ENV MAIL_USERNAME=ENV MAIL_PASSWORD=ENV MAIL_ENCRYPTION=ENV MAIL_FROM_NAME=# 表格文档配置ENV WIZARD_SPREEDSHEET_MAX_ROWS=1000ENV WIZARD_SPREEDSHEET_MAX_COLS=26# 用户帐号是否需要邮件激活ENV WIZARD_NEED_ACTIVATE=true# 加密密钥#ENV WIZARD_JWT_SECRET=QMCEeWEARHJKPR457fqgASGRHAhr573fh452gd# 访问地址,只有正确配置后,导出的 markdown 文档图片才能正常展示# 请根据实际情况修改!请根据实际情况修改!请根据实际情况修改!ENV APP_URL=http://doc.wizard.com# 文件上传存储目录VOLUME /webroot/storage/app/publicRUN php artisan config:cache

1.2.4 配置数据库

创建数据库用户、用户授权、创建数据库

# mysql -u root -pmysql> CREATE USER 'wizard'@'%' IDENTIFIED BY 'wizard';mysql> GRANT ALL PRIVILEGES ON *.* TO 'wizard'@'%' IDENTIFIED BY 'wizard';mysql> CREATE DATABASE wizard_2;mysql> quit;

1.2.5 构建镜像、启动应用

进入1.2.3 配置Dockerfile步骤中,Dockerfile文件存放的目录、构建镜像

# cd /root# docker build -t my-wizard .

数据库初始化

# docker run -it --rm --name my-wizard my-wizard php artisan migrate:install# docker run -it --rm --name my-wizard my-wizard php artisan migrate

启动应用

# docker run -d \  --name my-wizard  \  --mount source=my-wizard,target=/webroot/storage/app/public \  -p 80:80 \  my-wizard

注意:--mount即将容器中的/webroot/storage/app/public目录挂载于宿主机的my-wizard目录下,my-wizard实际在宿主机的/var/lib/docker/volumes/my-wizard中。容器中的/webroot/storage/app/public目录用于存放文档服务器中的所有图片及上传的附件。

可通过如下命令查看容器挂载的volume

# docker volume lsDRIVER  VOLUME NAMElocalmy-wizard

应用已部署完毕,可通过浏览器访问192.168.17.3280端口访问。


二、Wizard文档服务器版本升级

wizard开源项目的版本还在版本迭代中,功能尚待完善,例如后期还会支持脑图等,因此版本的升级是非常必要的。

2.1 wizard的版本升级

停止容器、删除容器

# docker stop my-wizard# docker rm my-wizard

更新镜像、启动应用

# docker pull mylxsw/wizard:latest# docker run -d  \--name wizard \-e DB_CONNECTION=mysql \-e DB_HOST=192.168.17.32 \-e DB_PORT=3306  \-e DB_DATABASE=wizard_2  \-e DB_USERNAME=wizard  \-e DB_PASSWORD=wizard  \-e APP_NAME="" \-e APP_ENV=production \-e MAIL_DRIVER= \-e MAIL_HOST= \-e MAIL_PORT= \-e MAIL_USERNAME= \-e MAIL_PASSWORD= \-e MAIL_ENCRYPTION= \-e MAIL_FROM_NAME= \-e WIZARD_SPREEDSHEET_MAX_ROWS=1000 \-e WIZARD_SPREEDSHEET_MAX_COLS=26 \-e WIZARD_NEED_ACTIVATE=true \-e APP_URL= \--mount source=my-wizard,target=/webroot/storage/app/public \-p 80:80 \mylxsw/wizard

注意:

  1. 启动应用时必须带上--mount参数,将原来的volumes挂载在容器的/webroot/storage/app/public目录上。否则启动的新的容器会在/var/lib/docker/volumes/目录下随机生成一个目录,然后将该目录挂载于容器中。此时,原来上传的图片及文件均无法访问。若已出现此情况,可先停止容器,再次启动容器时带上--mount source=my-wizard,target=/webroot/storage/app/public参数,图片可正常访问,附件可正常访问。

  2. 启动容器时:

  • 带上 Dockerfile 中的环境变量,否则新的镜像无法读取到数据库等其他配置;
  • 用拉取到的最新的镜像启动,例如:更新的时候拉取的是 mylxsw/wizard:latest 的镜像,那么启动容器候需要带上 mylxsw/wizard 镜像名称。

三、Wizard文档服务器的迁移

服务器迁移即将数据从一台服务器迁移至另外一台服务器上,保证数据一致性服务可用性版本稳定性

提醒:迁移过程包括两种环境:

  • 旧服务器:原始数据存放的服务器
  • 新服务器:新环境下准备导入数据的服务器。

以下文档中以旧服务器新服务器作区分。

注意:迁移之前先将旧服务器的wizard升级至最新版本,保证新、旧服务器之间wizard的版本一致性。

3.1 新服务器环境准备

1、需安装docker环境,参考1.2.1 安装Docker

2、安装MySQL5.7,参考本文1.2.4 安装MySQL 5.7

3、配置数据库,参考本文1.2.4 配置数据库

3.2 旧服务器备份

数据库备份,备份完后,/root目录下生成backdb.sql的文件

# cd /root# mysqldump -u root -h host -p wizard_2 > backdb.sql

图片及上传附件备份,在/root目录下生成backup.tar的压缩包备份文件

# cd /root# docker ps -aCONTAINER IDIMAGECOMMAND  CREATED STATUS  PORTSNAMESb8856b96a8b2my-wizard"docker-php-entrypoi…"3 days ago  Up 3 days0.0.0.0:80->80/tcpmy-wizard# docker run --rm --volumes-from my-wizard -v $(pwd):/backup my-wizard tar cvf /backup/backup.tar /webroot/storage/app/public

第二条命令即将宿主机当前目录$(pwd)临时挂载于my-wizard容器的/backup目录下,并将容器中的/webroot/storage/app/public目录下的数据打包成backup.tar文件,放置于容器的/backup目录,即本地宿主机的$(pwd)目录下。

3.3 服务部署

wizard服务搭建,可参考本文1.2.3 配置Dockerfile1.2.4 配置数据库1.2.5 构建镜像、启动应用*

3.3 传递备份数据

传递备份数据至新服务器的/root目录下:

# scp /root/backdb.sql root@新服务器ip:~# scp /root/backup.tar root@新服务器ip:~

3.4 导入数据

数据库导入,数据库的导入有两种方式,如下(需确保wizard数据库已经创建):

方法一:

cd /root# mysql -u root -p [dbname] < backup.sql

方法二:

cd /root# mysql -u root -pMYSQL>  USE DATABASE [dbname];MYSQL> source backup.sql;

上传图片及附件数据导入(需确保wizard容器已正常运行,且服务可访问)

# cd /root# docker run --rm --volumes-from my-wizard -v $(pwd):/backup my-wizard bash -c "cd /webroot && tar xvf /backup/backup.tar --strip 1"

此命令将新服务器的$(pwd)当前目录挂载于my-wizard容器的/backup目录下,再进入容器的/webroot目录,解压压缩包。

至此,恢复完成,数据迁移完毕。


参考文章

1. Use volumes

2. Wizard 开源文档管理系统

3. CentOS7 yum方式安装MySQL5.7

作者:McSiberiaWolf
来源链接:https://www.cnblogs.com/mcsiberiawolf/p/12867011.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/database/117662.html

标签:MySQL升级
分享给朋友:

“开源文档服务Wizard部署” 的相关文章

全面解析Redis 2022年05月13日 10:22:02
触发器的定义及优点 2022年05月21日 11:37:15
利用Oracle分析函数row 2022年06月03日 23:42:05
Mysql 查询结果赋值到变量 2022年06月07日 12:35:42