前言

 .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. 如何理解js中的this和实际应用中需要避开哪些坑

    this是什么 this就是函数内部的关键字 看下面例子理解js中的this // 例子1 function fnOne () { console.log(this) } 'use strict' f ...

  2. Immer.js简析

    开始 在函数式编程中,Immutable这个特性是相当重要的,但是在Javascript中很明显是没办法从语言层面提供支持,但是还有其他库(例如:Immutable.js)可以提供给开发者用上这样的特 ...

  3. Jessica's Reading Problem POJ - 3320

    Jessica's Reading Problem Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17562   Accep ...

  4. 搭建flutter开发

    最近入坑flutter,dart还没开始学,搭环境就干了我一天半,不容易,记录一下, 我们先立个目标,这是我已经配好的,我是真的有强迫症,需要打四个对勾,真的不容易,我们一个一先说一下每一个都代表什么 ...

  5. 一次生产环境搭建11g RAC的记录

    一.使用惠普3par工具配置共享存储 该部分可由惠普工作人员协助配置,只需将需求告知即可.如果想自己配置,惠普厂商会发送相关的软件工具以及操作手册给用户. 用putty登陆共享存储,使用showpd ...

  6. Block as a Value for SQL over NoSQL

    作者 Yang Cao,Wenfei Fan,Tengfei Yuan University of Edinburgh,Beihang University SICS, Shenzhen Univer ...

  7. ubuntu1804自带的vim和vi都是用什么版本?

    之前搜索vim一些命令时,经常看到有人说ubuntu自带的vim是是vim.tiny的,功能不全. 什么需要先卸载,再重装,真的是这样吗? 我查了一下,vim的版本号 vim --version vi ...

  8. openwrt sdk 编译工具 及 hello world

    需要先在 make menuconfig 中打开 sdk make -j4在 bin\targets\ramips\mt7620生成一个openwrt-sdk-ramips-mt7620_gcc-7. ...

  9. js 实现图片的放大和缩小

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. async,await怎么用

    async声明一个函数是异步的,await用于等待异步完成,并且await只能在async中使用. 使用async,await并行处理请求,速度减半: 将多个promise直接发起请求,先执行asyn ...