智能制造之路—从0开始打造一套轻量级MOM平台之基础平台搭建(Linux部署)
一、前言
前面我们选定了Admin.net来搭建我们的MOM快速开发平台,本章主要描述.NET6平台的Linux部署,以及记录搭建过程中坑。
本次搭建我们选择某云的轻量应用服务器,系统选择CentOS 7.6,数据库使用Mysql。参考配置如下:

二、搭建Linux管理工具
系统搭建完毕,我们使用宝塔来管理linux服务器。直接通过远程安装,快捷,简单,非常不错的工具。

输入远程IP,密码,点击安装,5~10分钟左右即可安装完毕。注意:必须选择LNMP环境。
三、.NET6安装
管理工具安装完成后,进入宝塔系统,打开终端。
1、检测centos是否安装过.net 运行时或者sdk:
dotnet --list-sdks
查看运行时版本:
dotnet --list-runtimes
2、将Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
3、一定要安装包含支持的 .NET 运行时的版本
sudo yum install aspnetcore-runtime-6.0
4、安装完成输入dotnet --info 命令查看是否安装成功,注意dotnet --version 是安装sdk后的验证命令
dotnet --info
5、安装成功后,显示的信息如下:

四、PM2安装
PM2是一个守护进程管理器,帮助您管理和守护您的应用程序,可以保证NET6程序像windows 服务一样一直运行。
1、安装Node.js
yum install nodejs
#若遇到No package alien available.Error: Nothing to do,可先执行以下命令再安装nodejs [ yum install epel-release ]
2、安装npm
yum install npm
3、安装pm2(npm版本太低可能会导致安装失败)
npm install -g pm2
4、安装完成输入命令查看版本,返回如下信息,说明安装成功。
pm2 -v

五、后台部署
1、进入宝塔系统,选择网站,创建站点,如下图:

2、下载admin.net源码,VS打开项目,右键Admin.NET.Web.Entry选择发布:部署模式选择“框架依赖”,运行时选择“可移植”

3、发布完成后,进入宝塔的文件管理功能,在/www/目录创建adminnet文件夹
将publish目录文件上传到服务器/www/adminnet目录,如下图:

进入目录/www/adminnet/publish/Configuration,修改数据库配置文件:Database.json。

4、打开终端,输入命令,进入publish目录
cd /www/adminnet/publish
5、使用pm2启动admin.net服务,输入命令
pm2 start "dotnet Admin.NET.Web.Entry.dll"

注意:关闭centos防火墙,云服务器放行端口,否则无法通过服务器IP访问
#关闭
systemctl stop firewalld.service
#开机禁用
systemctl disable firewalld.service
6、浏览器输入服务器IP地址,显示swagger,表明后端服务已经部署OK。

六、前端部署
1、使用vscode打开前端代码,修改配置文件,接口地址改为前面部署的后台地址

2、在终端输入命令对前端进行重新编译
npm run build

3、编译完成,进入宝塔系统,选择文件,将编译完成的dist目录文件全部上传到我们前面创建的网站目录:/www/wwwroot/mom

4、浏览器输入服务器地址,进入后台管理系统。

至此,快速开发平台部署完成,正式进入基础数据搭建。
七、总结
经过几天的反复实验查找资料,再验证,终于完成了平台的部署工作。过程中踩了无数的坑,满脸都是泪,最终皇天不负有心人!
记录下踩过的坑
| OS系统 | 用7.6版本,8.0版本aspnetcore-runtime-6.0不兼容,提示找不到.NET.APP。 |
| 防火墙 | 禁用掉 |
| PM2 | pm2 start 后面接的是完整命令 pm2 start "dotnet Admin.NET.Web.Entry.dll" |
尽请期待下一章:智能制造之路—从0开始打造一套轻量级MOM平台之ASN管理(WMS)
智能制造之路—从0开始打造一套轻量级MOM平台之基础平台搭建(Linux部署)的更多相关文章
- 毕马威&阿里:通向智能制造的转型之路
文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 2019 年 4 月 17 日,毕马威与阿里研究院携手举办了智能经济主题报告发布会,从技术.制造.组织 ...
- 运维工程师打怪升级进阶之路 V2.0
在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...
- 直击Huawei Mate 40产线背后的华为云IoT智能制造
摘要:数字孪生?在数字世界找到物理世界的设备! 本文分享自华为云社区<[云驻共创]Huawei Mate 40产线直击之华为云IoT智能制造助力工厂数字化转型>,原文作者:启明. Part ...
- 一个美国人对"智能制造"的思考!
世界上制造业最强的国家仍然是美国!如今,国内工业4.0概念讨论日益喧嚣,中德合作如火如荼,但我们不能否认这个事实. “ 当下,美国似乎失去了世界第一制造大国的称号,而中国的企业也正面临产值下滑.利润下 ...
- 5G:为人工智能与智能制造赋能
近几年,全球有两大科技领域越来越热:一个是人工智能,另一个是5G.两者都是能够改变时代.改变社会.改变经济的颠覆性技术.目前,我国已经发放了四张5G牌照,5G产业处在爆发前夜的阶段:人工智能方面,业界 ...
- MES被重新定义?做到这几点才算智能制造
在工业4.0背景下,推动智能制造,构建智能工厂.智能生产.智能物流和智能服务体系,我们需要对MES系统重新进行定义,主要从以下几个方面进行说明: MES深度融入企业运营环节 智能工厂中的机器将全部由软 ...
- MES应用案例|新宏泰电器乘上智能制造的东风
企业背景: 无锡新宏泰电器科技股份有限公司(下文简称:新宏泰电器)创立于1984年,公司主要生产断路器.微型电机.BMC/SMC材料.BMC/SMC模压制品及各类塑料模具的设计制造.已于2016年在沪 ...
- [js高手之路]Vue2.0基于vue-cli+webpack Vuex用法详解
在这之前,我已经分享过组件与组件的通信机制以及父子组件之间的通信机制,而我们的vuex就是为了解决组件通信问题的 vuex是什么东东呢? 组件通信的本质其实就是在组件之间传递数据或组件的状态(这里将数 ...
- 智能制造(MES)四大阶段
智能制造的发展会经历标准化.自动化.信息化.智能化四个阶段标准化,对于生产流程.业务流程.生产制造多方面的标准化.质量检测标准化.企业管理.供应链等.标准化是组织现代化生产的重要组成部分,对于生产专业 ...
- 易普优APS-3C行业解决方案助力国家智能制造示范车间实现高效计划排程
一. 项目背景 广东劲胜智能集团国家智能制造专项——移动终端金属加工智能制造新模式项目是2015年国家94家智能制1.造专项之一.本项目实施车间为金属CNC加工车间(下称“智能制造示范车间” ...
随机推荐
- Django框架——静态文件配置、form表单、request对象、连接数据库、ORM简介、ORM基本操作和语句
配置文件介绍 SECRET_KEY = '0yge9t5m9&%=of**qk2m9z^7-gp2db)g!*5dzb136ys0#)*%*a' # 盐 DEBUG = True # 调试模式 ...
- JS中的Map、Set、WeakMap和WeakSet
在JavaScript中,Map.Set.WeakMap和WeakSet是四个不同的数据结构,它们都有不同的特点和用途: 1. Map :Map是一种键值对的集合,其中的键和值可以是任意类型的.与对象 ...
- 绝对强大的三大linux指令:ar, nm, objdump
前言 如果普通编程不需要了解这些东西,如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断,刚你可以看一下下面的工具:objdump, nm, ar.当然,本文不可能非常详 ...
- 2023-03-25:若两个正整数的和为素数,则这两个正整数称之为“素数伴侣“。 给定N(偶数)个正整数中挑选出若干对,组成“素数伴侣“, 例如有4个正整数:2,5,6,13, 如果将5和6分为一组的
2023-03-25:若两个正整数的和为素数,则这两个正整数称之为"素数伴侣". 给定N(偶数)个正整数中挑选出若干对,组成"素数伴侣", 例如有4个正整数:2 ...
- 2023-01-06:给定一个只由小写字母组成的字符串str,长度为N, 给定一个只由0、1组成的数组arr,长度为N, arr[i] == 0表示str中i位置的字符不许修改, arr[i] ==
2023-01-06:给定一个只由小写字母组成的字符串str,长度为N, 给定一个只由0.1组成的数组arr,长度为N, arr[i]等于 0 表示str中i位置的字符不许修改, arr[i] 等于 ...
- 【Qt 6】读写剪贴板
剪贴板是个啥就不用多介绍了,最直观的功能是实现应用程序之间数据共享.就是咱们常说的"复制"."粘贴"功能. 在 Qt 中,QClipboard 类提供了相关 A ...
- 40% building 31/38 modules 7 active ...es\core-js\modules\es6.object.assign.jsBrowserslist: caniuse-lite is outdated.
一早运行项目发现不正常 虽然能运行,但是怎么看都不顺眼啊,那就照着提示先: npm update 一连串下来啥也看不懂是不是 我就直接npm install看看重新下载一下依赖结果直接给我来了个 :c ...
- 近期SQL优化实战分享
分享一下本周SQL优化的两个场景. 如果能对读者有一定的启发,共同探讨,不胜荣幸. 版本信息:mysql,5.7.19 引擎: innodb 场景1 我们有一张常口表,里面的数据由各种数据源合并而来, ...
- JVM系统参数
JVM(Java虚拟机)是Java程序的运行环境,它可以通过一些系统参数进行配置和优化.以下是一些常用的JVM系统参数: 1. -Xmx: 用于设置JVM堆的最大内存大小.例如,-Xmx1g表示将堆的 ...
- 【踩坑记录】字节流数据按照string的方式读取然后按照string的方案存储,编码导致二进制数据发生变化,原理记录
目录 问题缘由 背后原理 C#代码示例 总结 问题缘由 由于公司需求,需要读取游戏Redis数据做内外网数据迁移,没有与游戏组过多的沟通. 使用的数据类型是Hash, key是string,va ...