前言

 .net core跨平台版本基于.net core 3.1 SDK开发,剥离原来的基于MS Office进行文档转换功能的模块,使用基于开源跨平台的LibreOffice进行文档转换的模块。以此实现跨平台部署。由于LibreOffice同时只能有一个进程进行文档转换,为了提高转换效率,引入Docker进行LibreOffice转换进程隔离。经过测试,目前支持Windows和Linux操作系统。

Windows部署系统

  1. 推荐使用Windows Server2016和Windows Server2019服务器操作系统及Windows10桌面版操作系统(Docker只支持这些系统)。
  2. 为了开发调试方便以及简单化部署(对转换性能要求不高),系统也支持免Docker部署,这种场景下一次只能转换一个文档,需要操作系统安装LibreOffice。支持的操作系统为Windows Server 2008、Windows Server 2012服务器操作系统及Windows7桌面版操作系统。
  3. 基于Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。

(3)     安装.NET Core 3.1 SDK。

(4)     安装Docker for Windows Desktop。

(5)     导入docker转换镜像。(参考下文导入Docker镜像)

(6)     解压缩程序到指定目录。

(7)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为合适的值。建议该值设置为CPU内核数,最小1,最大32。

(8)     初始化数据库表结构。

(9)     创建服务。

(10)  启动服务。

(11)  登录系统,进行系统授权。

  1. 免Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。

(3)     安装.NET Core 3.1 SDK。

(4)     安装LibreOffice。

(5)     解压缩管理端程序到指定目录。

(6)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为1。1表示不启用Docker进行并发转换。

(7)     初始化数据库表结构。

(8)     创建服务。

(9)     启动服务。

(10)  登录系统,进行系统授权。

Linux部署系统

.Net Core3.1支持以下Linux操作系统

Docker支持以下Linux操作系统

综合考虑,系统选用CentOS7 Linux操作系统。

  1. 基于Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。(参考下文CentOS7部署MySQL)

(3)     安装.NET Core 3.1 SDK。(参考下文CentOS7部署 .NET Core 3.1)

(4)     安装Docker。(参考下文CentOS7部署Docker)

(5)     导入docker转换镜像。(参考下文导入Docker镜像)

(6)     解压缩管理端程序到指定目录。

(7)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为合适的值。建议该值设置为CPU内核数,最小1,最大32。

(8)     初始化数据库表结构。

(9)     启动程序。

(10)  登录系统,进行系统授权。

  1. 免Docker部署流程

(1)     安装操作系统。

(2)     安装MySQL8.0数据库。(参考下文CentOS7部署MySQL)

(3)     安装.NET Core 3.1 SDK。(参考下文CentOS7部署 .NET Core 3.1)

(4)     安装LibreOffice。(参考下文CentOS7部署LibreOffice)

(5)     导入docker转换镜像。(参考下文导入Docker镜像)

(6)     解压缩管理端程序到指定目录。

(7)     修改程序目录下appsettings.json文件,将ConvertSetting节点下的ConcurrentCounts(同时转换文档数量,即Docker实例数量)设置为1。1表示不启用Docker进行并发转换。

(8)     初始化数据库表结构。

(9)     启动程序。

(10)  登录系统,进行系统授权。

依赖项部署

上传文件到CentOS7

使用XFTP6通过ssh连接操作系统后即可上传文件。

CentOS7部署Docker

  1. 卸载旧版本

yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

  1. 安装本地rpm包

rpm -ivh *.rpm --nodeps –force

  1. 启动Docker服务

systemctl start docker

  1. 测试Docker是否正确安装

docker image ls

  1. 导入文档转换镜像 centos7_soffice.tar

docker load --input centos7_soffice.tar

导入Docker镜像

Windows系统打开命令行或Windows Power Shell,Linux系统打开Bash,然后执行:

docker load --input <镜像文件路径>

如:docker load --input /root/centos7_soffice.tar

CentOS7部署MySQL

  1. 卸载MariaDB

通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包

通过 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 命令装卸 mariadb

  1. 解压tar包
  2. 依次安装

rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm --nodeps --force

  1. 初始化数据库,依次执行

mysqld --initialize

chown mysql:mysql /var/lib/mysql -R

systemctl start mysqld.service

systemctl enable mysqld

  1. 查看数据库root密码 cat /var/log/mysqld.log | grep password
  2. 登录数据库mysql -uroot -p

此时已进入mysql控制台,再输入的就是SQL语句(以分号结尾,否则不执行),不是Linux命令了

  1. 修改mysql 的root用户密码(必须修改默认密码)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123.root@zst';

  1. 开放防火墙

查询端口是否开启:firewall-cmd --query-port=3306/tcp

开启端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

重启防火墙:firewall-cmd --reload

查看所有开启的端口:firewall-cmd --list-port

CentOS7部署LibreOffice

官方安装教程:https://zh-cn.libreoffice.org/get-help/install-howto/linux/

  1. 解压缩tar包

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm.tar.gz

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm_helppack_zh-CN.tar.gz

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz

  1. 安装LibreOffice

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm/RPMS/*.rpm --nodeps --force

/* 安装主安装程序的所有rpm包 */

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm --nodeps --force

/* 安装中文语言包中的所有rpm包 */

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm_helppack_zh-CN/RPMS/*.rpm --nodeps --force

/* 安装中文离线帮助文件中的所有rpm包 */

CentOS7部署.NET Core SDK

  1. 卸载

dotnet --list-sdks

yum remove dotnet-host

sudo rm -rf /usr/share/dotnet/sdk/1.0.1

sudo rm -rf /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1

sudo rm -rf /usr/share/dotnet/shared/Microsoft.AspNetCore.App/1.0.1

sudo rm -rf /usr/share/dotnet/host/fxr/1.0.1

1.0.1为示例,根据list-sdks实际结果替换

参考教程:https://docs.microsoft.com/en-us/dotnet/core/versions/remove-runtime-sdk-versions?tabs=linux

  1. 安装dotnet-sdk

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.100-rhel.6-x64.tar.gz -C $HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

export PATH=$PATH:$HOME/dotnet

vim ~/.bashrc

#在文件末尾增加

export PATH=$PATH:$HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

其他

  1. 解压缩WebCore程序:unzip WebCore*.zip
  2. 启动主程序:dotnet NPSWebCore.dll

2019-12-13

张林

.net core系统跨平台部署手册的更多相关文章

  1. ASP.NET Core托管和部署Linux实操演练手册

    一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...

  2. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

    使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...

  3. .NET Core跨平台部署

    目录 .NET Core跨平台部署 1. Windows-IIS 1.1 安装.NET Core Windows Server Hosting 1.2 配置应用程序池 1.3 使用发布文件 2 Lin ...

  4. ASP.NET Core开发Docker部署

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  5. 如何将.Net Core应用程序部署在Linux操作系统上运行

    .Net Core简介 跨平台: 可以在 Windows.macOS 和 Linux 操作系统上运行. 跨体系结构保持一致: 在多个体系结构(包括 x64.x86 和 ARM)上以相同的行为运行代码. ...

  6. ASP.NET Core开发-Docker部署运行

    ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...

  7. glusterFS系统中文管理手册(转载)

    GlusterFS系统中文管理手册       1文档说明 该文档主要内容出自 www.gluster.org 官方提供的英文系统管理手册<Gluster File System 3.3.0 A ...

  8. MariaDB Galera Cluster部署手册

    MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1>  yum install opens ...

  9. ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. [LeetCode] 207. Course Schedule 课程表

    题目: 分析: 这是一道典型的拓扑排序问题.那么何为拓扑排序? 拓扑排序: 有三件事情A,B,C要完成,A随时可以完成,但B和C只有A完成之后才可完成,那么拓扑排序可以为A>B>C或A&g ...

  2. Nginx + uWSGI部署中的一些小坑

    1.invalid host in upstream报错 重新启动nginx : sudo /etc/init.d/nginx restart 原因是在配置负载均衡nginx.conf配置文件时,发现 ...

  3. VUE四 axios详解

    axios的中文文档写的已经很详细 https://www.kancloud.cn/yunye/axios/234845

  4. python笔记28(TCP,UDP,socket协议)

    今日内容 1.TCP协议 协议的特点:三次握手,四次挥手: 2.UDP协议 3.OSI七层模型:每层的物理设备,每一层协议. 4.代码部分: ①介绍socket: ②使用socket完成tcp协议的w ...

  5. DOM是什么(初级版)

    js新手村出村之路--基础知识 在这里默认你已经粗粗的自学过了一遍js知识.(也许是在昏昏欲睡的课堂上听了两分钟,也许是跟着b站上的视频打了一遍.who cares) 在下面的内容中我将整理一些在平常 ...

  6. [python]回答百度知道上的问题2000-2999之间的回文日

    因为百度知道的编辑器没有提供代码功能,将回复写入. 题目如下: 求2000到2999的所有回文日,例如20200202 用Python怎么做 回文年好求,回文日的话,年月日这咋存啊 思路一:遍历每一天 ...

  7. model进阶

    本节目录 一 QuerySet 二 中介模型 三 查询优化 四 extra 五 整体插入 一 QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMI ...

  8. iview的input框校验添加v-modal.number会影响校验,还是依照API使用number来转换number类型

    公司项目使用了iview2.0版本的,有一个需求是需要把里面的值换成number类型并且校验,代码大致如下,使用了v-modal.number来实现转换, <FormItem label=&qu ...

  9. 转载:Nginx 相关介绍

    转载自:https://www.cnblogs.com/wcwnina/p/8728391.html Nginx 相关介绍(Nginx是什么?能干嘛?)   Nginx的产生 没有听过Nginx?那么 ...

  10. 【Weiss】【第04章】AVL树例程

    普通的二叉搜索树可能会由于数据不平均.删除产生高度差等原因,使树倾向于不平衡生长,导致操作慢于O(NlogN). 为应对此现象,将搜索.删除.插入的最坏时间也控制在O(NlogN)上,产生了平衡二叉树 ...