.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 | shhtml

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

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

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

        天天一点点都是进步数据库

             若是文章哪里存在问题,欢迎你们指出来,我会在第一时间修改。服务器