.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= ...
随机推荐
- 前端javascript知识(二)
documen.write和 innerHTML的区别 document.write只能重绘整个页面 innerHTML可以重绘页面的一部分 浏览器检测通过什么? (1) navigator.user ...
- 分享一个基于Net Core 3.1开发的模块化的项目
先简单介绍下项目(由于重新基于模块化设计了整个项目,所以目前整个项目功能不多) 1.Asp.Net Core 3.1.2+MSSQL2019(LINUX版) 2.中间件涉及Redis.RabbitMQ ...
- Nginx之负载均衡配置(二)
前文我们聊到了nginx作为负载均衡的配置,前端nginx作为调度器调度http或https请求,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12458159 ...
- 第四篇(1):企业常用Linux web环境安装配置(apache、php、mysql)
上篇我们讲了基本的软件包管理和文件操作什么的,现在也要动手安装点有用的东西了吧! 本篇我会写出一个用yum安装apache.php.mysql的方法,最后再运行phpMyAdmin来管理数据库. 1. ...
- web安全测试(上)
前情提要: 公司的安全测试一直是安全部经理全权负责,测试部只做功能和自动化. 但是2019是公司业绩腾飞的一年,业务量越来越大了,安全部经理实在做不过来. 于是他给整个测试部培训<安全测试> ...
- 数学-Matrix Tree定理证明
老久没更了,冬令营也延期了(延期后岂不是志愿者得上学了?) 最近把之前欠了好久的债,诸如FFT和Matrix-Tree等的搞清楚了(啊我承认之前只会用,没有理解证明--),FFT老多人写,而Matri ...
- HTML5 history-hash 随机选择彩票
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- (转)浅析epoll – epoll函数深入讲解
原文地址:http://www.cppfans.org/1418.html 浅析epoll – epoll函数深入讲解 前一篇大致讲了一下epoll是个什么东西,优点等内容,这篇延续上一篇的内容,主要 ...
- vue项目中使用Lodop实现批量打印html页面和pdf文件
1.Lodop是什么? Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现复杂打印.控件功能强大,却简单易用,所有调用如同JavaScript扩 ...
- [Linux][C][gcc] Linux GCC 编译链接 报错ex: ./libxxx.so: undefined reference to `shm_open'
本人原创文章,文章是在此代码github/note的基础上进行补充,转载请注明出处:https://github.com/dramalife/note. 以librt丶用户自定义动态库libxxx 和 ...