项目目标部署环境:CentOS 7+

项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx

开源地址:https://github.com/wmowm/nh.core

上一章已经讲解了项目的结构,相对来说比较简单,适合新手,传送门

搭建一个通用的.net core项目框架

有小伙伴提问,ORM这块为什么不用dapper或者EF,相对来说,NHibernate还是比较陌生,因为我也没用使用过Dapper或者EF,感兴趣的小伙伴,可以弄一个分支,做一个EF的DAL出来,model可以共用

好了,现在开始进入正题,如何将项目部署到linux上面呢?

这里我一步步来讲解,防止大家踩坑,里面借鉴很多博客资源,衷心的感谢

第一步,在linux上安装mysql

安装mysql网上有很多教程,我这里就不详细介绍了,我安装的是mysql5.6,我是懒人,这里推荐大家一款linux管理软件appnode,可以一键安装软件,非常的方便,官网地址:https://www.appnode.com/ 里面有详细的安装教程,群友:简自豪,推荐的,它可不是狂小狗

相当于一款可视化界面了,非常实用方便,装好mysql,就来说说里面的坑

坑1. 开启远程访问权限

默认用户是root,没有密码,但是没有开通远程访问,我们必须新建一个用户,并开启远程访问

坑2.权限问题

开启远程访问后,通过客户端可以正常链接mysql,此时需要开启该用户的权限

这里推荐这篇博客:https://www.cnblogs.com/zhchoutai/p/6929103.html 我是参考它实现的

坑3.中文乱码问题

这里需要修改mysql的配置文件

这里参考这篇博客:https://www.cnblogs.com/beginner-boy/p/7643541.html

第二步,安装.net core SDK

坑1.网上的教程很多都是.net core 1.0的安装教程,如果跟着走,可能你装的SDK版本不对

这里推荐安装官网的教程,进行安装SDK 传送门 https://www.microsoft.com/net/learn/get-started/linux/centos  这里可以根据linux的版本进行选择

参考博客:http://www.cnblogs.com/GreedyL/p/7422796.html  我基本上是参考这篇博客,进行实现的

第三步,安装nginx

当你.net core程序可以正常访问后,此时我们需要把默认的5000端口,映射到外网,这里借助nginx实现反向代理

安装nginx肯定是借助appnode一件安装啦,当然你也可以自己手动安装,按照教程走,就可以了

坑1.映射静态资源

因为最开始我部署的是一个mvc项目,当时一些静态资源无法访问,如js.img... 这些需要在nginx进行配置,我的配置文件如下

第四步 安装 supervisord

在控制台里运行.net core,当控制台关闭,我们的程序也对应关闭了,这是我们无法容忍了,所以我们需要把它运行到后台,而且服务器重启,也需要后台程序自动启动,这里映入supervisord,它是python开发的

可以继续参考 http://www.cnblogs.com/GreedyL/p/7422796.html 这篇博客进行安装,并在配置文件夹写入我们要启动的程序,如图

conf.d里面放我们要启动的程序配置信息,当supervisord每次启动时,这样程序集也会被启动,我的配置如下

相对来说,还是非常简单的,做完这里恭喜你,你的.net core程序可以在linux上面跑了

今天我实现了webapi的接口,大家可以在mvc项目里测试的玩玩,效果图如下

代码示例:

觉得对你有帮助的,可以在github给我点个星星,非常感谢

开源地址:https://github.com/wmowm/nh.core

后续章节会讲解.net core,有不对的地方,欢迎大佬拍砖,以免误人子弟,不甚感谢!

转载于:https://www.cnblogs.com/tibos/p/8893216.html

第二章 在Linux上部署.net core相关推荐

  1. 17 Flask mega-tutorial 第17章 在Linux上部署(腾讯云 Ubuntu)【极其详细的部署过程】

    如需转载请注明出处. win10 64位.Python 3.6.3.Notepad++.Chrome 67.0.3396.99(正式版本)(64 位) 注:作者编写时间2018-03-28,linux ...

  2. Linux系统上部署dotnet core

    Linux系统上部署dotnet core 主要步骤如下: 安装linux Linux下安装dotnet core环境 Linux下部署dotnet core系统 主要步骤如下: 因我公司需要,做一个 ...

  3. 怎样在linux上部署web服务器

    linux上部署web服务器 1.从Apache官网下载源码. 2.卸载原来已经存在的httpd. 3.挂载光盘准备部署httpd. 4.源码编译安装httpd, 解包 , 配置(--prefix:指 ...

  4. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.5. 重点回顾)

    第二章. Linux 如何学习 最近更新日期:2009/08/06 5. 重点回顾 6. 本章习题 7. 针对本文的建议:http://phorum.vbird.org/viewtopic.php?t ...

  5. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.4. 鸟哥的建议(重点在solution的学习))

    第二章. Linux 如何学习 最近更新日期:2009/08/06 4. 鸟哥的建议(重点在solution的学习) 鸟哥的建议(重点在Solution的学习): 除了上面的学习建议之外,还有其他的建 ...

  6. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.3. 有心朝Linux作业系统学习者的学习态度)

    第二章. Linux 如何学习 最近更新日期:2009/08/06 3. 有心朝Linux作业系统学习者的学习态度 3.1 从头学习Linux基础 3.2 选择一本易读的工具书 3.3 实作再实作 3 ...

  7. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.2. 鸟哥的Linux苦难经验全都录)

    第二章. Linux 如何学习 最近更新日期:2009/08/06 2. 鸟哥的Linux苦难经验全都录 2.1 鸟哥的Linux学习之路 2.2 学习心态的分别 2.3 X window的学习 鸟哥 ...

  8. 浅入浅出 Android 安全:第二章 Android Linux 内核层安全

    第二章 Android Linux 内核层安全 来源:Yury Zhauniarovich | Publications 译者:飞龙 协议:CC BY-NC-SA 4.0 作为最广为人知的开源项目之一 ...

  9. linux时间管理代码,第二章、linux的时间管理

    第二章.linux的时间管理 linux系统一般存在两个时间,一个属于linux操作系统的系统时间,系统时间受操作系统影响,可能会出现时间不准确,但另一个真实硬件上的时间,也就是用纽扣电子持续供电的硬 ...

最新文章

  1. io在Linux,在Linux进行IO的正确姿势
  2. 青龙面板安装教程+手机京豆组件让你的手机美起来
  3. webpack使用加载器来加载CSS样式
  4. backlight misc驱动范例 及应用程序范例
  5. C++ 学习之旅(12)——static用法小结
  6. 百度SEO Keyword Surfer v0.3.7(关键词优化)
  7. 【解题报告】VijosP1448校门外的树(困难版)
  8. centos7 php多版本切换_CentOS7服务搭建----搭建私有云盘01
  9. php传引用和全局变量
  10. 自动生成proto Js语句
  11. 梦笔记2022-2-1
  12. 动态规划入门G - Super Jumping! Jumping! Jumping! (有关最优子序列的一个相关题目)...
  13. 第十四届全国大学生智能汽车竞赛获奖名单
  14. JavaWeb教程路线
  15. 平面设计中的网格系统pdf_一本好书 | 排版圣经:设计中的网格系统
  16. 【交互设计师必备书单】资深交互设计师推荐的交互设计师必看的七本书
  17. 故事:两只老虎的悲惨结局
  18. 怎么做新闻软文推广?故事性新闻稿写作技巧_云媒易
  19. tp3调用微信jsjdk扫一扫接口,并实现微信扫一扫签到
  20. 内网渗透:八、CVE-2020-1472 NetLogon 域内提权漏洞(域控密码置空)

热门文章

  1. HttpRuntime.Cache的使用经验
  2. Oracle Enterprise Manager 11g 启停
  3. 通过拓展Function.prototype实现一个AOP
  4. noise code
  5. 如何用c#打开文件夹并选择文件夹内的一个文件 open folder and select file
  6. MySQL事务ACID实现原理
  7. Spark OpenHashMap分析
  8. Dubbo消费者代理的创建
  9. java浅度克隆_java对象 深度克隆(不实现Cloneable接口)和浅度克隆
  10. CSS中box-sizing: border-box;的作用