首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这可能是最low的发布dotnet core站点到centos7教程

这可能是最low的发布dotnet core站点到centos7教程

作者头像
_淡定_
发布2018-08-24 10:51:15
4780
发布2018-08-24 10:51:15
举报
文章被收录于专栏:dotnet & javadotnet & java

前言

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

正文

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

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

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

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

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

这里才是真的正文

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

官网就可以下载。

  1. 安装过程就不说了。
  2. 装好之后启动,弹出创建虚拟机的界面
img
img

,选这个创建新的虚拟机,点继续。

  1. 然后选操作系统,这里是64位的CentOS
img
img

,然后继续

  1. 选择一个虚拟磁盘,选创建一个新的,
img
img

,继续

  1. 然后就结束了,什么都没有选。。。
img
img

, 完成。

  1. 选择保存的路径,也没有改,
img
img

, Save。

  1. 然后系统就启动了,loading了一段时间后错误提示就出来了,提示没有找到系统
img
img

.

  1. 点这个螺丝刀设置,然后先选这个cd/dvd
img
img

.

  1. 下拉框里面选一开始下载的iso镜像,然后把连接cd驱动器的钩打上
img
img

.

  1. 然后点这个显示全部回去上一级。
img
img

.

  1. 点启动磁盘,然后选这个cd,我们要设置cd为启动项。然后就可以点重启了。
img
img

.

  1. 然后就到安装界面了,这里选第一个,第二个是先测试一下这个安装介质,再安装系统,因为我们是ISO文件安装,所以一般不会有问题。
img
img

.

  1. 进到安装界面了,选语言。
img
img

. 中文吧,后面可以少设置一个时区。点继续。

  1. 系统选项安装位置那里有个感叹号,装不了。
img
img

。点进去。

  1. 选一下这个磁盘。

.点完成。

  1. 然后就可以开始安装了。
  2. 安装进程已经启动,root密码要设置一下。root就想windows的Administrator
img
img
  1. 设置的密码比较简单,要点两次完成。
img
img
  1. 等待装完,点重启。
img
img
  1. 启动了之后选择系统登录。
img
img
  1. 我不晓得第二个是干嘛用的。。所以选第一个登录。
  2. 然后就可以登录了,用户名root。
img
img
  1. 输了用户名和密码之后没有什么密码错误之类的提示,就表示登录成功了。linx里面没有提示就是最好的提示。
img
img
  1. 系统进来了,下一步干嘛。。配置网络。先用ip addr命令试试。好像没有看到192.168之类的东西。。
img
img
  1. ip addr 命令出来有两项,一个lo,一个ens33。
  2. 然后输入 cd /etc/sysconfig/network-scripts && ls . 这个命令表示change direcotry 到指定目录下,然后list出下面的文件。
img
img
  1. 打命令 vi ifcfg-ens33 回车。 表示用vi编辑器编辑 ifcfg-ens33这个文件。(关于怎么用vi,自行百度了;为什么是ens这个文件,因为他是我们的一个网卡).
  2. 把onboot=no 改成 onboot=yes,:wq 保存退出.
img
img
  1. 打命令 service network restart 重启一下这个网络服务。如果回车之后看到OK,那恭喜,否则,就google吧。
img
img
  1. 如果网络服务启动不成功,检查一下虚拟机的网络设置。如果是hyper-v用户,记得添加了虚拟机之后试试重新加一块网卡,然后选新加的网卡,(我在这里花了好长时间。。。).点螺丝刀或者边上那个箭头都是ok的。。
img
img
  1. 然后再用ip addr 看下地址信息。可以看到172.16.170.128(地址随意,,系统分配的)
img
img

  1. ping一下百度,看网络情况,记得按control+c结束,否则一直发包。
img
img
  1. 网络通了之后外面试试机器能不能ssh上去。
  2. ssh root@172.16.170.128 回车,ka,出错了
img
img
  1. 提示说key已经变了,因为虚拟机重新装的,所以要用ssh-keygen命令重新生成一下。ssh-keygen -R 172.16.170.128 。然后回车就好。。
img
img
  1. 提示已经更新。
  2. 再连接试试。打个yes,回车,输入密码,连接上了。
img
img
  1. 然后干什么呢,,先更新一下系统吧。。 yum update -y .第一次,时间有点久...
img
img

看到这个完毕就好了

  1. 接下来先把dotnet core装到机器上。
  2. 地址.官方地址看这里。我们自己来跑一遍。
  3. 打命令 sudo yum install libunwind libicu 。sudo表示管理员方式,不过我们已经是root,可以不用打。yum是用来管理系统的软件的。这个命令表示要安装 libunwind 和 libicu.打个y确认安装。
img
img
  1. 然后是 curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848821 去下载core的安装包,回车,没有提示就是最好的提示。
img
img
  1. 先在根目录下opt文件夹中心间dotnet文件夹,然后是把压缩包解压到这里面。 sudo mkdir -p /opt/dotnet && sudo tar -zxf dotnet.tar.gz -C /opt/dotnet (tar命令参数-zxf)。回车,依旧没有提示。
  2. sudo ln -s /opt/dotnet/dotnet /usr/local/bin 给这个dotnet文件夹中的dotnet文件和 /usr/local/bin做关联。相当于添加了path环境变量.
img
img
  1. 然后dotnet命令试试效果。welcome,,这样就表示好了。
img
img
  1. 环境装好了,要架web服务器了.根据教程.
  2. 我忍不住贴一下这个顶端的介绍。。。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.
  3. 根据介绍,首先是Apache很NB(当然),然后我们要把过来的请求转发到运行在Kestrel上的ASP.NET core应用程序上(这个很重要)。
  4. 先装一下httpd 和 mod_ssl。 sudo yum -y install httpd mod_ssl
  1. httpd是什么? Apache Hypertext Transfer Protocol Server
  2. mod_ssl是什么?mod_ssl combines the flexibility of Apache with the security of OpenSSL.' 就是说mod_ssl汇聚了apache的便利性和openssl的安全性
  3. 装好了要配置服务,和配置ip一样。
  4. 这里先装一个vim编辑器,yum install vim -y (vim是高级版本的vi,然后balabala..)
  5. cd /etc/httpd/conf/ && vim httpd.conf
  6. 改一下监听端口和服务器名称,我们准备把站点架在8001端口,:wq保存退出。
img
img
img
img
  1. 顺道就直接apachectl configtest一下,看看改完之后语法有没有问题。
img
img
  1. systemctl restart httpd.service用命令systemctl status httpd.service查看一下状态,出错了。提示没有权限绑定到端口8001.
  1. 因为8001这个端口不在系统默认可绑定的端口里面。所以要改设置,怎么改,装个软件,semanage。 yum -y install policycoreutils-python.
  2. 装好之后试试semanage命令,semanage port -a -t http_port_t -p tcp 8001。回车,没有错误提示,OK。
img
img
  1. systemctl restart httpd.service 启动httpd服务,然后systemctl status httpd.service查看服务状态。active,正在运行。
img
img
  1. 有个错误提示。 先systemctl stop httpd.service 停止apache服务,然后 service network restart 重启网络服务,然后systemctl start httpd.service,再systemctl status httpd.service查看,OK了。 (不行就重启吧)
  2. 有点兴奋,外面机器去连连看,,,地址栏里面172.16.170.128:8001回车,,拒绝连接。。。
  3. firewall-cmd --zone=public --add-port=8001/tcp --permanent 把8001端口开起来。
img
img
  1. firewall-cmd --reload 重新载一下配置
img
img
  1. 外面地址了访问,OK了,666.
img
img
  1. 然后需要把程序发布然后传到这个服务器上。
  2. 打开vscode,(这里强烈推荐vscode。。。balabala). 调出终端,然后dotnet new mvc --auth None --framework netcoreapp1.1 新建一个默认的项目。
img
img
  1. dotnet restore, dotnet build,木有异常,就可以发布了。
img
img
  1. dotnet publish。发布成功.
img
img
  1. cd 到发布的路径,然后ls看一下,好多发出来的新文件。。
  2. 然后是scp命令把文件copy到centos服务器上。 scp -r * root@172.16.170.129:/var/www/html 把当前目录下的所有文件用root账号复制到/var/www/html路径下面。
img
img
  1. 去服务器上看看文件是否存在。cd /var/www/html/ && ls 文件存在。
  1. dotnet publishTest2.dll 试试应用是否可以正常启动。
img
img
  1. 测试OK。然后去看一下很重的第51点。 做代理。core是运行在Kestrel上的,所以要把apache过来的请求转发到Kestrel上。
  2. 命令 vim /etc/httpd/conf.d/publishTest2.conf,内容 ProxyPass / http://localhost:5000/ (换行) ProxyPassReverse / http://localhost:5000/ :wq保存退出。
img
img
  1. apachectl configtest 一下,语法正确。
img
img
  1. 重启一下httpd服务, systemctl restart httpd.service
img
img
  1. 再试着访问http://172.16.170.129:8001/,提示service unavailable.
  2. 命令: setsebool httpd_can_network_connect 1 回车。 图找不到了。。。
  3. ps 命令看一下我们的dotnet是否已经启动。木有进程。
img
img
  1. 到我们的站点目录下,然后dotnet publishTest2.dll & (注意最后有个&,这样就会到后台执行这个进程了)
img
img
  1. 刷新一下http://172.16.170.129:8001/ 额,,出错了,,提示。。
img
img
  1. 这个好办,忘记拷文件夹了。。。改一下命令 scp -r * root@172.16.170.129:/var/www/html 回车,输入密码,OK。
  2. 再刷新一下,,界面出来了。
  3. 等等,好想样式不对,,少了比如图片之类的一些东西。。
  4. 重启一下httpd服务,重启一下dotnet 站点,然后就好了。。。尴尬。。。。
img
img
  1. 总算架起来了。。。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 正文
      • 这里才是真的正文
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档