.net core系统跨平台部署手册
前言
.net core跨平台版本基于.net core 3.1 SDK开发,剥离原来的基于MS Office进行文档转换功能的模块,使用基于开源跨平台的LibreOffice进行文档转换的模块。以此实现跨平台部署。由于LibreOffice同时只能有一个进程进行文档转换,为了提高转换效率,引入Docker进行LibreOffice转换进程隔离。经过测试,目前支持Windows和Linux操作系统。
Windows部署系统
- 推荐使用Windows Server2016和Windows Server2019服务器操作系统及Windows10桌面版操作系统(Docker只支持这些系统)。
- 为了开发调试方便以及简单化部署(对转换性能要求不高),系统也支持免Docker部署,这种场景下一次只能转换一个文档,需要操作系统安装LibreOffice。支持的操作系统为Windows Server 2008、Windows Server 2012服务器操作系统及Windows7桌面版操作系统。
- 基于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) 登录系统,进行系统授权。
- 免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操作系统。
- 基于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) 登录系统,进行系统授权。
- 免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
- 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装本地rpm包
rpm -ivh *.rpm --nodeps –force
- 启动Docker服务
systemctl start docker
- 测试Docker是否正确安装
docker image ls
- 导入文档转换镜像 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
- 卸载MariaDB
通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包
通过 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 命令装卸 mariadb
- 解压tar包
- 依次安装
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
- 初始化数据库,依次执行
mysqld --initialize
chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld.service
systemctl enable mysqld
- 查看数据库root密码 cat /var/log/mysqld.log | grep password
- 登录数据库mysql -uroot -p
此时已进入mysql控制台,再输入的就是SQL语句(以分号结尾,否则不执行),不是Linux命令了
- 修改mysql 的root用户密码(必须修改默认密码)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123.root@zst';
- 开放防火墙
查询端口是否开启: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/
- 解压缩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
- 安装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
- 卸载
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
- 安装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
其他
- 解压缩WebCore程序:unzip WebCore*.zip
- 启动主程序:dotnet NPSWebCore.dll
2019-12-13
张林
.net core系统跨平台部署手册的更多相关文章
- ASP.NET Core托管和部署Linux实操演练手册
一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...
- 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...
- .NET Core跨平台部署
目录 .NET Core跨平台部署 1. Windows-IIS 1.1 安装.NET Core Windows Server Hosting 1.2 配置应用程序池 1.3 使用发布文件 2 Lin ...
- ASP.NET Core开发Docker部署
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- 如何将.Net Core应用程序部署在Linux操作系统上运行
.Net Core简介 跨平台: 可以在 Windows.macOS 和 Linux 操作系统上运行. 跨体系结构保持一致: 在多个体系结构(包括 x64.x86 和 ARM)上以相同的行为运行代码. ...
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- glusterFS系统中文管理手册(转载)
GlusterFS系统中文管理手册 1文档说明 该文档主要内容出自 www.gluster.org 官方提供的英文系统管理手册<Gluster File System 3.3.0 A ...
- MariaDB Galera Cluster部署手册
MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1> yum install opens ...
- 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= ...
随机推荐
- CSS3实现一个旋转的花朵
要效果图如下: 实现原理:其实很简单,就是中间的圆圈定位在中间,其他的6个圆圈,进行不同的绝对定位,然后进行旋转!代码: <!DOCTYPE html> <html lang=&qu ...
- React解决长列表方案(react-virtualized)
github地址 高效渲染大型列表的响应式组件 使用窗口特性,即在一个滚动的范围内,呈现你给定数据的一小部分,大量缩减了呈现组件所需的时间,以及创建DOM节点的数量. 缺点:滑动过快,可能会出现空白的 ...
- vue 带参数的跳转-完成一个功能之后 之后需要深思,否则还会忘记
我要写详细点,否则下次很容易忘记 写了一个页面,这个页面里面添加了 很多a 标签,跳转都是同一个页面,内容不一样,方法 首先 路由 设定好 routes:[ { path:'/aaa', name:' ...
- springmvc 的@ResponseBody 如何使用JSONP?
JSONP解释 在解释JSONP之前,我们需要了解下”同源策略“这个概念,这对理解跨域有帮助.基于安全的原因,浏览器是存在同源策略机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载额文 ...
- Idea安装教程以及环境变量配置
IDEA安装以及JDK环境变量 环境变量配置 下载jdk
- win10 安装虚拟机提示 主IP地址显示网络信息不可用
问题:在虚拟机详情下面显示 主ip地址:网络信息不可用 解决办法: 先root用户[root@dfhf~]#cd ..[root@dfhf/]#cd /etc/sysconfig/network-sc ...
- postgresql自增字段初始值的设定
在实际开发中会有这样的需求,想要自己设置表中自增字段的初始值. 比如:有一个your_table表中有一个自增字段id,我们知道,插入数据后,默认是从1开始自增的. 但是假如现在有一个需求,是要求id ...
- Js中的For循环详解
大家好,我是逆战班的一员,今天给大家讲解一下Js循环中的For循环. For循环是JS循环中一个非常重要的部分. 我们先讲一下for循环的作用: For循环用在需要重复执行的某些代码,比如从1打印到1 ...
- LocalStorage与SessionStorage
localStorage与sessionStorage 每日更新前端基础,如果觉得不错,点个star吧
- 微信小程序校历组件
微信小程序校历组件 校历组件,可以作为校园小程序的插件,如果觉得不错,点个star吧