前言

不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash。。我想说我电脑上的chrome已经crash太多次了

以后一定要搞离线编辑的。

正文

什么是.net core,balalala,(23333)。

什么是CentOS 7,为什么选这个,balalala,(2333)。。。

--------------------华丽分割线------------------------

不瞎扯,总结一下这几天断断续续尝试下来的历程,整理一下步骤,如果里面有什么我没说清楚的,那应该是我真的不懂。
从安装虚拟机开始。。。

--------------------华丽分割线------------------------

这里才是真的正文

  1. 准备工作,去下个系统和虚拟机。
  2. 系统在这里下,我这里用的是最小化的安装镜像,里面有aliyun的,网易的,看在玩过阴阳师的份上,就163了,这个. 下下来是700多MB,有点xp的味道。
  3. 然后下虚拟机,我这里用的是 VMware Fusion

    官网就可以下载。

  4. 安装过程就不说了。
  5. 装好之后启动,弹出创建虚拟机的界面 ,选这个创建新的虚拟机,点继续。
  6. 然后选操作系统,这里是64位的CentOS ,然后继续
  7. 选择一个虚拟磁盘,选创建一个新的,,继续
  8. 然后就结束了,什么都没有选。。。, 完成。
  9. 选择保存的路径,也没有改,, Save。
  10. 然后系统就启动了,loading了一段时间后错误提示就出来了,提示没有找到系统 .
  11. 点这个螺丝刀设置,然后先选这个cd/dvd .
  12. 下拉框里面选一开始下载的iso镜像,然后把连接cd驱动器的钩打上 .
  13. 然后点这个显示全部回去上一级。.
  14. 点启动磁盘,然后选这个cd,我们要设置cd为启动项。然后就可以点重启了。.
  15. 然后就到安装界面了,这里选第一个,第二个是先测试一下这个安装介质,再安装系统,因为我们是ISO文件安装,所以一般不会有问题。.
  16. 进到安装界面了,选语言。 . 中文吧,后面可以少设置一个时区。点继续。
  17. 系统选项安装位置那里有个感叹号,装不了。 。点进去。
  18. 选一下这个磁盘。 .点完成。
  19. 然后就可以开始安装了。
  20. 安装进程已经启动,root密码要设置一下。root就想windows的Administrator
  21. 设置的密码比较简单,要点两次完成。
  22. 等待装完,点重启。
  23. 启动了之后选择系统登录。
  24. 我不晓得第二个是干嘛用的。。所以选第一个登录。
  25. 然后就可以登录了,用户名root。
  26. 输了用户名和密码之后没有什么密码错误之类的提示,就表示登录成功了。linx里面没有提示就是最好的提示。
  27. 系统进来了,下一步干嘛。。配置网络。先用ip addr命令试试。好像没有看到192.168之类的东西。。
  28. ip addr 命令出来有两项,一个lo,一个ens33。
  29. 然后输入 cd /etc/sysconfig/network-scripts && ls . 这个命令表示change direcotry 到指定目录下,然后list出下面的文件。
  30. 打命令 vi ifcfg-ens33 回车。 表示用vi编辑器编辑 ifcfg-ens33这个文件。(关于怎么用vi,自行百度了;为什么是ens这个文件,因为他是我们的一个网卡).
  31. 把onboot=no 改成 onboot=yes,:wq 保存退出.
  32. 打命令 service network restart 重启一下这个网络服务。如果回车之后看到OK,那恭喜,否则,就google吧。
  33. 如果网络服务启动不成功,检查一下虚拟机的网络设置。如果是hyper-v用户,记得添加了虚拟机之后试试重新加一块网卡,然后选新加的网卡,(我在这里花了好长时间。。。).点螺丝刀或者边上那个箭头都是ok的。。
  34. 然后再用ip addr 看下地址信息。可以看到172.16.170.128(地址随意,,系统分配的)
  35. ping一下百度,看网络情况,记得按control+c结束,否则一直发包。
  36. 网络通了之后外面试试机器能不能ssh上去。
  37. ssh root@172.16.170.128 回车,ka,出错了
  38. 提示说key已经变了,因为虚拟机重新装的,所以要用ssh-keygen命令重新生成一下。ssh-keygen -R 172.16.170.128 。然后回车就好。。
  39. 提示已经更新。
  40. 再连接试试。打个yes,回车,输入密码,连接上了。
  41. 然后干什么呢,,先更新一下系统吧。。 yum update -y .第一次,时间有点久... 看到这个完毕就好了
  42. 接下来先把dotnet core装到机器上。
  43. 地址.官方地址看这里。我们自己来跑一遍。
  44. 打命令 sudo yum install libunwind libicu 。sudo表示管理员方式,不过我们已经是root,可以不用打。yum是用来管理系统的软件的。这个命令表示要安装 libunwind 和 libicu.打个y确认安装。
  45. 然后是 curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848821 去下载core的安装包,回车,没有提示就是最好的提示。
  46. 先在根目录下opt文件夹中心间dotnet文件夹,然后是把压缩包解压到这里面。 sudo mkdir -p /opt/dotnet && sudo tar -zxf dotnet.tar.gz -C /opt/dotnet (tar命令参数-zxf)。回车,依旧没有提示。
  47. sudo ln -s /opt/dotnet/dotnet /usr/local/bin 给这个dotnet文件夹中的dotnet文件和 /usr/local/bin做关联。相当于添加了path环境变量.
  48. 然后dotnet命令试试效果。welcome,,这样就表示好了。
  49. 环境装好了,要架web服务器了.根据教程.
  50. 我忍不住贴一下这个顶端的介绍。。。Apache is a very popular HTTP server and can be configured as a proxy to redirect HTTP traffic similar to nginx. In this guide, we will learn how to set up Apache on CentOS 7 and use it as a reverse proxy to welcome incoming connections and redirect them to the ASP.NET Core application running on Kestrel. For this purpose, we will use the mod_proxy extension and other related Apache modules.
  51. 根据介绍,首先是Apache很NB(当然),然后我们要把过来的请求转发到运行在Kestrel上的ASP.NET core应用程序上(这个很重要)。
  52. 先装一下httpd 和 mod_ssl。 sudo yum -y install httpd mod_ssl
  53. httpd是什么? Apache Hypertext Transfer Protocol Server
  54. mod_ssl是什么?mod_ssl combines the flexibility of Apache with the security of OpenSSL.' 就是说mod_ssl汇聚了apache的便利性和openssl的安全性
  55. 装好了要配置服务,和配置ip一样。
  56. 这里先装一个vim编辑器,yum install vim -y (vim是高级版本的vi,然后balabala..)
  57. cd /etc/httpd/conf/ && vim httpd.conf
  58. 改一下监听端口和服务器名称,我们准备把站点架在8001端口,:wq保存退出。
  59. 顺道就直接apachectl configtest一下,看看改完之后语法有没有问题。
  60. systemctl restart httpd.service用命令systemctl status httpd.service查看一下状态,出错了。提示没有权限绑定到端口8001.
  61. 因为8001这个端口不在系统默认可绑定的端口里面。所以要改设置,怎么改,装个软件,semanage。 yum -y install policycoreutils-python.
  62. 装好之后试试semanage命令,semanage port -a -t http_port_t -p tcp 8001。回车,没有错误提示,OK。
  63. systemctl restart httpd.service 启动httpd服务,然后systemctl status httpd.service查看服务状态。active,正在运行。
  64. 有个错误提示。 先systemctl stop httpd.service 停止apache服务,然后 service network restart 重启网络服务,然后systemctl start httpd.service,再systemctl status httpd.service查看,OK了。 (不行就重启吧)
  65. 有点兴奋,外面机器去连连看,,,地址栏里面172.16.170.128:8001回车,,拒绝连接。。。
  66. firewall-cmd --zone=public --add-port=8001/tcp --permanent 把8001端口开起来。
  67. firewall-cmd --reload 重新载一下配置
  68. 外面地址了访问,OK了,666.
  69. 然后需要把程序发布然后传到这个服务器上。
  70. 打开vscode,(这里强烈推荐vscode。。。balabala). 调出终端,然后dotnet new mvc --auth None --framework netcoreapp1.1 新建一个默认的项目。
  71. dotnet restore, dotnet build,木有异常,就可以发布了。
  72. dotnet publish。发布成功.
  73. cd 到发布的路径,然后ls看一下,好多发出来的新文件。。
  74. 然后是scp命令把文件copy到centos服务器上。 scp -r * root@172.16.170.129:/var/www/html 把当前目录下的所有文件用root账号复制到/var/www/html路径下面。
  75. 去服务器上看看文件是否存在。cd /var/www/html/ && ls 文件存在。
  76. dotnet publishTest2.dll 试试应用是否可以正常启动。
  77. 测试OK。然后去看一下很重的第51点。 做代理。core是运行在Kestrel上的,所以要把apache过来的请求转发到Kestrel上。
  78. 命令 vim /etc/httpd/conf.d/publishTest2.conf,内容 ProxyPass / http://localhost:5000/ (换行) ProxyPassReverse / http://localhost:5000/ :wq保存退出。
  79. apachectl configtest 一下,语法正确。
  80. 重启一下httpd服务, systemctl restart httpd.service
  81. 再试着访问http://172.16.170.129:8001/,提示service unavailable.
  82. 命令: setsebool httpd_can_network_connect 1 回车。 图找不到了。。。
  83. ps 命令看一下我们的dotnet是否已经启动。木有进程。
  84. 到我们的站点目录下,然后dotnet publishTest2.dll & (注意最后有个&,这样就会到后台执行这个进程了)
  85. 刷新一下http://172.16.170.129:8001/ 额,,出错了,,提示。。
  86. 这个好办,忘记拷文件夹了。。。改一下命令 scp -r * root@172.16.170.129:/var/www/html 回车,输入密码,OK。
  87. 再刷新一下,,界面出来了。
  88. 等等,好想样式不对,,少了比如图片之类的一些东西。。
  89. 重启一下httpd服务,重启一下dotnet 站点,然后就好了。。。尴尬。。。。
  90. 总算架起来了。。。

这可能是最low的发布dotnet core站点到centos7教程的更多相关文章

  1. 这可能是最low的发布dotnet core站点到centos7

    前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...

  2. Docker 简单发布dotnet core项目 图文版

    原文:https://www.cnblogs.com/chuankang/p/9474591.html docker发布dotnet core简单流程 需要结合这个版本看哈 地址:https://ww ...

  3. Docker 简单发布dotnet core项目 文本版

    原文:https://www.cnblogs.com/chuankang/p/9474591.html docker发布dotnet core简单流程 照着步骤来基本没错 但是有几个要注意的地方: v ...

  4. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  5. visual studio 2017发布dotnet core到docker

    docker的好处不用多说,有不了解的可移步<docker入门>,作为一个.net方面的老鸟也想早点搭上docker末班车,减少布署中的各种坑.以下我是在Visual Studio 201 ...

  6. 发布.net core Web到CentOS7

    1.发布一个.net core(只安装了.Net Core运行时,而没有安装ASP.NET Core运行时,需要添加以下节点再发布).  <PublishWithAspNetCoreTarget ...

  7. .NET Core 跨平台发布(dotnet publish)

    .NET Core 跨平台发布(dotnet publish) ,无需安装.NET Core SDK,就可以运行. 前面讲解了.NET Core 的VSCode 开发.现在来讲讲发布(dotnet p ...

  8. CYQ.Data 正式支持 DotNET Core 版本发布

    闲话几句: 自从上周开始,IOS人员逝去,就开始接手IOS的代码了. 并开始整理IOS的代码(包括当时一开始设计的开发框架). 在未来不远的日子里,设想是有一个系列详细的介绍I恋App和IT连App及 ...

  9. dotnet core瘦身发布

    需要安装nuget包Microsoft.Packaging.Tools.Trimming然后利用如下命令发布dotnet publish -r win10-x64 -c release --self- ...

随机推荐

  1. DOM与BOM

    DOM 1.概念起源: 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页上,组织页面(或文档)的对象被组织在一个树形结 ...

  2. 真正的ddos防御之道,简单干脆有效!

    话说,30G 就各种发博客 BB,唉,坦白说 ,博客园团队真心没见过世面 来 各位 先看图 啥意思呢? 就是哥的 最高防御是 600G.  没错,基本对当时的游戏没啥大的影响,10秒内恢复. 因为时间 ...

  3. 关于Django字段类型中 blank和null的区别

    blank 设置为True时,字段可以为空.设置为False时,字段是必须填写的.字符型字段CharField和TextField是用空字符串来存储空值的. 如果为True,字段允许为空,默认不允许. ...

  4. JS跨域两三事

    今日,前端开发要求新的Web服务需要支持跨域,因为要发起 Ajax 到后端web 服务域名请求数据: 前端application域名是 other.abc.com (举个栗子)  api接口域名是 a ...

  5. C# 开源组件--NPOI读取Excel单元格中的公式值

    今天在项目中碰到了EXCEL导入的数据是用公式生成,直接导入不了数据,写在博客中方便自已查询也可以给想找这方面的参考一下: 用NPOI导入时,在OFFICE 2007中的文件导入时一般会用XSSF,所 ...

  6. 算法与数据结构(二) 栈与队列的线性和链式表示(Swift版)

    数据结构中的栈与队列还是经常使用的,栈与队列其实就是线性表的一种应用.因为线性队列分为顺序存储和链式存储,所以栈可以分为链栈和顺序栈,队列也可分为顺序队列和链队列.本篇博客其实就是<数据结构之线 ...

  7. Spring IOC容器基本原理

    2.2.1 IOC容器的概念IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化.定位.配置应用程序中的对象及建立这些对象间的依赖.应用程序无需直接在代码中new相关的对象,应用程序由IOC容器 ...

  8. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  9. Redis安装及使用详解

    推荐在Linux系统上安装,这里我采用CentOS6: Redis采用3.0.0版本,官网下载即可 由于Redis是C语言编写,需要安装gcc(部分Linux自带gcc) yum install gc ...

  10. [Swift]LeetCode53. 最大子序和 | Maximum Subarray

    Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...