一、安装.NET  Core SDK 在CentOS上

1.右键打开命令行

2.为了安装.NET,需要注册微软签名密钥和添加微软相关的支持。这个操作每台机器只能做一次。

Add the dotnet product feed(其实就是向微软提交投名状,表示我这台服务器要用core),注意:先检测下是否能联网; 
打开命令行,执行以下命令:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

3.安装 .NET Core SDK

命令一:sudo yum update

  需要一段时间,而且会提示是否继续,输入y然后回车。

  如果遇到提示another app is currently holding the yum lock;waiting for it to exit,表示yum正在被使用,通过以下命令强制关闭:rm -f /var/run/yum.pid

命令二:sudo yum install libunwind libicu

命令三:sudo yum install dotnet-sdk-2.0.2

(3.0版本的sudo yum install dotnet-sdk-3.0)

4.使用命令 dotnet --info 查看是否安装成功

出现下面界面则说明安装sdk成功

二、部署网站

1.创建文件夹

mkdir core

cd core

2.我这里使用的是虚拟机,就直接将生成好的文件拷到core目录下,然后执行命令(dotnet 项目名称.dll)

3.将发布的代码复制到core文件夹

发布:dotnet NetCore2Mvc.dll

 报错:An assembly specified in the application dependencies manifest (NetCore2.0.Mvc.deps.json) was not found

出现这个错误,是因为未安装dotnet-hosting-2.0.x (对应上图中的2.0.8)

使用yum 安装一下:sudo yum install dotnet-hosting-2.0.8

4.安装完成,发布成功!

5.浏览网站

注意:.Net Core 默认创建的项目部署完成以后,只能在本机内访问,外部通过IP是打不开的,可以通过配置Nginx实现。也可以通过修改Program.cs

WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseUrls("http://*:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

UseUrls(http://*:5000即可实现通过IP访问程序。

三、Supervisor为 dotnet 创建守护进程

关闭shell后保持程序继续运行

1.安装 yum install supervisor

2.在etc文件夹下新建文件夹supervisor

mkdir /etc/supervisor

3.在supervisor文件夹下新建文件夹conf.d

mkdir /etc/supervisor/conf.d

4.生成supervisord.conf配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

5.定位到文件夹下修改配置文件:

cd /etc/supervisor

vim  supervisord.conf

修改前:

修改后:

然后按esc  键入":wq"保存退出

6.本地新建core3web.conf

[program:core3web]
command=dotnet Core3Web.dll
directory=/netpublish/coreweb
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=
stderr_logfile=/var/log/core3web.err.log
stdout_logfile=/var/log/core3web.out.log

说明:

command= 要执行的命令
directory= 命令执行的目录
environment= 环境变量
user= 进程执行的用户身份
stopsignal=INT
autostart= 是否自动启动
autorestart= 是否自动重启
startsecs= 自动重启间隔
stderr_logfile= 标准错误日志
stdout_logfile= 标准输出日志

上传到自己新建的文件夹conf.d目录下

在文件夹var/log/ 创建core3web.err.log和core3web.out.log

7.运行supervisord,查看是否生效

supervisord -c /etc/supervisor/supervisord.conf

8.查看进程:

ps -ef | grep dotnet

9.守护进程已创建,现在关闭命令窗口也可以访问自己的网站了。

10.界面管理

  • 10.1键入命令
# systemctl enable supervisord.service
# systemctl start supervisord.service
# systemctl status supervisord.service

  • 10.2修改supervisord.conf配置文件

默认是被注释的(分号代表注释)

ins键 修改后  按esc  键入:wq保存退出 修改后

  • 10.3修改后重新加载配置文件
supervisorctl reload

  • 10.4访问:9001

如果需要用户名账号登录把注释去掉就行了

新增了一个java项目

新增conf文件

[program:SpringBootDemo]
command=java -jar springbootdemo-0.0.-SNAPSHOT.jar --server.port=
directory=/javapublish/springdemo1
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=
stderr_logfile=/var/log/core3web.err.log
stdout_logfile=/var/log/core3web.out.log

reload即可

【Core】.NET Core 部署在Linux的更多相关文章

  1. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

    使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...

  2. Asp.Net Core 发布和部署(Linux + Jexus )

    前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在 asp.net core 中对我们的已经完成的程序进行发布和部署. 有关如何使用 Nginx 进行部署, ...

  3. 把Asp.Net Core 2.0部署在Linux上,使用Nginx代理服务器,并且用Systemctl命令以服务的方式监听项目

    在Linux上部署.net core 2.0程序: 第一步:配置Nginx代理 在/etc/nginx/sites-available/default 中添加 server { listen ; lo ...

  4. Asp.Net Core采用MailKit部署到Linux Docker连接邮件服务器报错

    前段时间看文章了解到发邮件的SmtpClient已经过时了,微软官方推荐大家用其他解决方案,例如MailKit. https://docs.microsoft.com/zh-cn/dotnet/api ...

  5. 如何将.Net Core应用程序部署在Linux操作系统上运行

    .Net Core简介 跨平台: 可以在 Windows.macOS 和 Linux 操作系统上运行. 跨体系结构保持一致: 在多个体系结构(包括 x64.x86 和 ARM)上以相同的行为运行代码. ...

  6. 翻译 - ASP.NET Core 托管和部署 - 在 Linux 上使用 Nginx 托管 ASP.NET Core 网站

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0 本文介 ...

  7. VisualStudioCode创建的asp.net core控制台程序部署到linux

    1.asp.net core控制台程序 static void Main(string[] args) { ; ) { Console.WriteLine("Hello World!&quo ...

  8. asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法

    asp.net core程序部署在centos7(下面的解决方案,其他系统都能使用,这里只是我自己部署在centos7),使用服务器jexus进行部署,AppHost模式. 因为请求是由jexus进行 ...

  9. 记录.NET Core通过Docker部署到Linux

    1.现在CentOS安装Docker环境(参考地址:https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/) 我这 ...

  10. .net core web api部署到Linux系统CentOS 7

    一.创建一个.net core web api 的Demo 完成后的项目结构如图 修改下监听端口 发布代码 二.发布到CentOS 7上并运行 下一步需要一定的虚拟机知识了,我这里使用了windows ...

随机推荐

  1. MOT上海站 | 卓越研发之路:微服务之路

    微服务架构在带来灵活性.扩展性.可用性等优点的同时,其复杂性也给架构师们带来了很大的挑战.当你面对这些挑战一筹莫展时,不妨来参加由msup和微软联合推出的MOT线下沙龙活动吧,我们将给您答疑解惑. M ...

  2. 扫二维码登录实现原理,php版

    基础的逻辑图就是这样,但是实际情况还是有几种可能 比如QQ登录,微信登录,微博登录,基本设计都差不多,根据实际情况会有一些差异 问题是,如果设计合理的接口在保证数据的安全性和快速性 设计到的技术不复杂 ...

  3. Presto实战

    一.Presto简介 1.PRESTO是什么? Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节. Presto的设计和编写完全是为了解决像Facebook ...

  4. Java ee第七周作业

    一.什么是JSON?JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的 ...

  5. 解决秒杀活动高并发出现负库存(Redis)

    商城在秒杀活动开始时,同时有好多人来请求这个接口,即便做了判断库存逻辑,也难免防止库存出现超卖,造成损失 Django中的ORM本身就对数据库做了防范,但再过亿级访问也扛不住 下面利用Redis的过载 ...

  6. luogu3978 [TJOI2015]概率论

    题目链接:洛谷 题目大意:求所有$n$个点的有根二叉树的叶子节点数总和/$n$个点的有根二叉树的个数. 数据范围:$n\leq 10^9$ 生成函数神题!!!!(我只是来水博客的) 首先$n$个点的有 ...

  7. caffe报错:cudnn.hpp:86] Check failed: status == CUDNN_STATUS_SUCCESS (3 vs. 0) CUDNN_STATUS_BAD_PARAM 原因

    在实际项目中出现的该问题,起初以为是cudnn版本的问题,后来才定位到在网络进行reshape操作的时候 input_layer->Reshape({(), input_layer->sh ...

  8. 唯美MACD-完全版

    前言: 自己很喜欢MACD这个指标,因为很欠缺所以就搜集的多一点,有人问,学习缠为什么还这么搜集些Macd的资料呢?因为在分析走势(或盘整背驰.或趋势背驰)的时候我的习惯使用Macd做辅助判断,所以M ...

  9. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

    1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 ...

  10. Gitlab+Jenkins实现自动部署

    Gitlab+Jenkins实现自动部署   系统环境: Gitlab主机 IP:192.168.1.2 Jenkins主机 IP:192.168.1.3 一.为何要做自动部署 #部署Tomcat的在 ...