前言

 .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. mupdf 基于命令行的 pdf转图片

    下载地址: https://www.mupdf.com/downloads/index.html 使用方法: 打开cmd,切换到mupdf文件路径下,再在命令行中敲入命令  mutool.exe  d ...

  2. 关于 InnoDB 锁的超全总结

    有点全的 InnoDB 锁 几个月之前,开始深入学习 MySQL .说起数据库,并发控制是其中很重要的一部分.于是,就这样开起了 MySQL 锁的学习,随着学习的深入,发现想要更好的理解锁,需要了解 ...

  3. Mac结合Docker开发

    Mac结合Docker开发 前几天在看Java并发实战时,在Mac上写了一个示例,结果运行后无法按照书本上运行.主要是有些命令,在Mac和Linux是有区别的,比如top, Mac上是不支持-Hp,意 ...

  4. Tomcat服务自动启动以隐藏start.bat命令窗口

    该方法注意先要配置好CATALINA_HOME和path等环境变量.接着主要命令有:cmd命令符下进入tomcat/bin目录,输入:service.bat install (自定义的tomcat版本 ...

  5. 必备技能一、webpack

    https://cloud.tencent.com/developer/section/1477376----->配置很重要 一.基本安装 mkdir webpack-demo &&am ...

  6. django数据库分库migrate

    最近在研究微服务和分布式,设计到了数据库分库,记录一下 首先,创建多个数据库,如果是已经生成的数据库,可以分库,这里我是新创建的项目,刚好可以用来尝试 我是用docker创建的mysql数据库容器 拉 ...

  7. 上线前测试的bug,要不要处理,跟版本的关系

    最近有两个项目是在旧版本上实施的.上线前经过一轮测试后,发现了一些产品(我们的产品确实不稳定) 在这个项目上,修改产品bug是肯定的.但是要不要追踪这些bug? 这就跟版本使用范围有关系了,毕竟要考虑 ...

  8. 深入解析Underscore.js源码架构

    Underscore.js是很有名的一个工具库,我也经常用他来处理对象,数组等,本文会深入解析Underscore源码架构,跟大家一起学习下他源码的亮点,然后模仿他写一个简单的架子来加深理解.他的源码 ...

  9. 详解POI的使用方法(DOM和SAX的方式)及存在的不足

    简介 Apache POI是一套基于 OOXML 标准(Office Open XML)和 OLE2 标准来读写各种格式文件的 Java API,也就是说只要是遵循以上标准的文件,POI 都能够进行读 ...

  10. DVWA(七):XSS(stored)存储型XSS攻击

    存储型XSS : 存储XSS,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在.提交JS攻击代码存储到数据库然后再输出. low: 观察源码: <?php if( isset( ...