码迷,mamicode.com
首页 > Web开发 > 详细

Linux 如何部署安装.NetCore 程序

时间:2018-06-13 19:39:23      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:telnet   UI   工程文件   pcr   linux服务器   copy   sdk版本   csdn   默认端口   

件准备:  

  XShell:终端模拟器,支持SSH、SFTP、telnet,rlogin和串行。用于window系统远程连接其他不同系统服务器;

  XFtp:Xftp是一个灵活和轻量级SFTP / FTP客户端用户需要安全地通过网络传输文件。它提供了强大的功能,如直接编辑多个窗格,文件夹同步,他们支持,服务器到服务器转移和第三方编辑器集成。 

    安装教程:https://blog.csdn.net/HighproX/article/details/51283990

  Linux虚拟机或服务器一台;

开始

1、  将.NetCore代码上传到GitHub或其他代码云托管中

  如果不能上传到GitHub,也可使用XFtp将代码上传到Linux服务器中,如图;

  如果能通过Git拉去代码,则可以在linux服务器中安装git ,使用方式和在Window中没有区别,安装命令 :yum install git 

    技术分享图片

2、  使用XShell登陆Linux服务器,使用教程参考https://blog.csdn.net/HighproX/article/details/51283990

  进入后,使用yum安装相关依赖,我使用的NetCore SDK版本为2.0.3,在服务器中也将安装2.0.3版本,在安装前,请务必先将其他版本的dotnet sdk删除,如果在安装了多个版本SDK,那么在部署的时候会产生一些莫名奇妙的问题;

  开始安装dotnet sdk:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-2.0.3,实际打开后是英文的,我是通过Chrome浏览器进行翻译过的;技术分享图片

  可通过 dotnet --info 命令来确认dotnet是否安装完成

  技术分享图片

 

3、此时,dotnet sdk已经安装完成,代码也已经上传到linux服务器,接下来,使用cd 命令,跳转到代码目录下,比如我的代码文件实在 /AliyunGit/***** 目录下,执行 dotnet build -c Release 命令打包代码,然后在执行 dotnet publish -c Release 命令发布代码,这两句命令的作用是打包发布当前目录下的所有NetCore工程,发布后的文件将会在 /工程文件/bin/Release/netcoreapp2.0 下,如果你的sdk是2.1版本,那么netcoreapp2.0就会变成netcoreapp2.1

  技术分享图片技术分享图片

如果不是用XFtp查看,也可使用ls path 或者 ll path命令查看制定目录下所有文件,如果ls 或者 ll 后面不接路径,则表示查看当前目录下所有文件

技术分享图片

4、使用cd 进入到netcoreapp2.0目录下,使用 dotnet 工程名称.dll,出现这个也就是说明运行成功,但我们在外网还是访问不了这个网站,需要一个Web容器进行转发;(下图是Copy其他教程的,但是我的运行结果和图中区别只有路径不同)

 初始默认端口为 5000,如果想要更改端口:https://blog.csdn.net/u010584641/article/details/79525535

技术分享图片

5、安装Nginx:https://segmentfault.com/a/1190000007116797

6、安装完Nginx后,开始配置 Nginx 的 location ,这个不做多说,我也不是很清楚,连接如下:

  https://moonbingbing.gitbooks.io/openresty-best-practices/ngx/nginx_local_pcre.html
  http://seanlook.com/2015/05/17/nginx-location-rewrite/

  下图是我的项目location配置

  技术分享图片

7、配置完成后,重启Nginx,Service Nginx restart

8、再重复第4步操作;

9、此时我们已经能够在外网中能够访问部署的程序了,基本上上来说,部署算完成了,但是,如果把XShell关闭后,就发现,部署完成的网站又不能访问了,对此,我的理解是,之前所运行的程序只是在前台运行,而没有转入后台运行,类似于 visual studio中的调试状态;我是通过linux的定时任务(crontab命令)解决,大致原理是,编写一个 Shell脚本文件,在脚本文件中判断网站程序是否正在运行,如果没有正在运行则启用(也就是执行第4步操作),然后在通过crontab 定时执行这个 Shell 脚本;

10、Linux 如何定时执行.NetCore程序

 

Linux 如何部署安装.NetCore 程序

标签:telnet   UI   工程文件   pcr   linux服务器   copy   sdk版本   csdn   默认端口   

原文地址:https://www.cnblogs.com/JETSh/p/9178247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!