zoukankan      html  css  js  c++  java
  • .NET Core跨平台:.NET Core项目部署到linux(Centos7)

    1.开篇说明

      a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结,地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么这篇博客我们就在上一篇博客的基础上对其代码进行部署,将其部署在Linux Centos7下。
      b 这周周二,也就是3月7号,微软发布了最新的开发工具(Visual Studio 2017),简单看了一下,带来了更好的开发体验,也推动了跨平台开发的一大步,未来.NET的跨平台将更加的成熟。
      c 下面我们将一个.NET Core项目利用Jexus部署到linux下,那么如果我们要将一个.NET Core项目部署到linux服务器下,需要准备下面的几个东西(Linux服务器,Jexus,安装数据库的服务器,其它(Redis)等)。
      d 下面我们开始大致演示一下如何将.NET Core项目部署到linux服务器下,测试地址:http://www.chuxinm.com/

    2.Jexus简单说明

      a 官网地址:http://www.jexus.org/
      b 关于Jexus的安装,我以前也写过一篇文章,地址是(http://www.cnblogs.com/hanyinglong/p/5456757.html),我写的这篇文章是基于Mono安装的,什么意思呢,也就是说要安装Jexus,就要安装Mono,但是现在Jexus提供了免Mono安装的方案,非常方便,大家可以体验一下,如果安装遇到什么问题,大家可以在官网或者其他地方进行查询解决。
      c Jexus快捷安装((一对命令将会安装成功Jexus))

        1.安装:sudo curl jexus.org/release/install | sh

        2.更新:sudo curl jexus.org/release/upgrade | sh

        说明:使用这种命令的安装方法将会吧Jexus安装到/usr/jexus 位置。

    3.Visual Studio 2015本地发布并且测试

      a 在本地系统开发完成之后,首先我们需要在本地发布进行测试一下,如果不报错,则上传到服务器
      b 本地项目结构如下图所示:我们就基于本项目进行发布部署到Linux下。
        
        b.1 首先打开cmd,切换到项目所在盘符下,将项目切换到src根目录下(../src/项目名称下),运行命令dotnet publish,运行不报错则本地发布成功,如图所示执行成功之后也展示了将项目发布到什么地方的路径。
        
        b.2 如上图所示,我们跳转到发布的路径下(项目根目录下/bin/Debug/netcoreapp1.0/publish下/),运行命令:dotnet ProgrammersLiveShow.dll ,根据提示访问地址,可本地测试吗,如图所示:
        
      c 如上图所示,我们按照访问路径(http://localhost:5000/),如果访问成功,则证明本地发布没有任何问题,如下图所示:如有操作登录的功能,则进行系统登录测试,确认没有任何问题在进行发布。 
         

    4.配置Jexus并且部署.NET Core说明

      a 上述步骤中我们简单说明了一下系统的一些功能以及本地发布,现在我们来简单说明一下如何配置Jexus,因为以前安装过jexus,我们直接在Linux下找到安装的路径,如图所示:
        
      b 如上图所示,我们看到了jexus的安装目录,Jexus的配置其实也很简单,首先我们打开网站配置文件夹siteconf,然后打开默认的default文件,看到如下图所示的配置,配置上简单的说明如下:
                
      c 如上图所示,我们将其项目部署到系统(/var/www/default/publish)下
        
      d 首先我们将本地发布的文件上传到服务器上,直接将本地的publish文件夹上传到/var/www/default下,如下图所示
        
      e 因为我现在系统本身已经发布,所以需要将现在后台运行的线程关闭(执行下面两条命令之后,则已经上线的系统会不能访问),如果是首次发布,则不需要进行这一步,命令如下,如图所示:
        (1):ps -ef | grep ProgrammersLiveShow.dll  
        (2):kill -9 PID
        
      f 上传完成之后,系统跳转到publish下,执行dotnet ProgrammersLiveShow.dll,运行成功并且可以访问,则说明发布才成功,但是这样有一个弊端,就是发布之后不能关闭Xshell,如果关闭则默认程序会推出,所以,我们可以使用下面的命令直接将其设置为在后台运行
            命令如下:nohup dotnet ProgrammersLiveShow.dll &
        
      g 上述步骤全部执行完成之后使用服务器域名加80端口号既可以进行访问,这里可能存在配置80端口号对外访问的权限,在下面会简单说明

    5.其它知识点总结

        a 在系统频繁的更新中,做好备份是很关键的一件事情,在每次的上线替换系统之前都要执行如下命令进行备份:
            tar zcvf /var/www/default/remark/(日期)publish.tar.gz /var/www/default/publish/
        b Centos7开放端口,Centos7和7以前开放端口的实现不一致.
            b.1 Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口
            b.2 开启端口: firewall-cmd --zone=public --add-port=80/tcp --permanent   --zone #作用域  --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 
            b.3 重启防火墙 firewall-cmd --reload 
            b.4 开启防火墙: systemctl start firewalld
     
      一个学习.NET Core权限配置的源码购买地址:http://www.chuxinm.com/Shop/Detail/Detail?id=8c2e2aff9290446ababf9c5905fa2609

            每天一点点都是进步

                 如果文章哪里存在问题,欢迎大家指出来,我会在第一时间修改。

  • 相关阅读:
    用户及文件权限管理
    Linux基础操作及概念
    监督学习和非监督学习
    基于仿生算法的智能系统I
    9.Dijkstra求最短路 II 堆优化的Dijkstra
    8.Dijkstra求最短路 I 朴素Dijkstra
    7.有向图的拓扑序列 拓扑排序
    6.树与图的广度优先遍历 图中点的层次
    5.树的重心 树与图的深度优先遍历
    4.八数码 BFS
  • 原文地址:https://www.cnblogs.com/hanyinglong/p/6539344.html
Copyright © 2011-2022 走看看