dotnet core2.2 通过虚拟机发布到CentOS上

释放双眼,带上耳机,听听看~!

自从.net core出现的时候,就知道c#的代码居然能后运行到Linux上面,以前都没想过居然这么牛逼,所以很早就想学习怎样部署上去,直到现在.net core都出现2.2了,才花时间去接触,说实话,第一次接触,太多的坑在这个上边了,途中还走了很多弯路...现在把最后总结的流程简单的记录下来

一 丶下载vmware Workstation (我的虚拟机用的VM所以这里就只讲了VM)  

 

这里下载,这个是官网,下载需要注册,尽量不要再其他地方下载,可能会附带一些不可描述的东西

(安装过程就省略了,你们这么聪明,肯定不需要了)

 

二丶下载一个centos 7.0镜像文件(版本看你心情),并且安装在虚拟机上面

 

这里下载,官网有时候很卡,耐心等一下,这里有

CentOS-7-DVD版本:DVD是标准安装盘

CentOS-7-Everything版本:对完整版安装盘的软件进行补充,集成所有软件

CentOS-7-Minimal版本:迷你精简版

dotnet core2.2 通过虚拟机发布到CentOS上

 

如果只是为了发布.net core的话,我们用迷你版就行了,比较小,功能也能够满足,下载保存到固定的文件夹

接下来就是在VM上面装centos了(你们这么聪明,那我就把简单的步骤省略,还剩重要位置的几张图)

新建一个

dotnet core2.2 通过虚拟机发布到CentOS上

 

 dotnet core2.2 通过虚拟机发布到CentOS上

dotnet core2.2 通过虚拟机发布到CentOS上

 

 

dotnet core2.2 通过虚拟机发布到CentOS上

这个磁盘大小选个30G应该够用了 ...

dotnet core2.2 通过虚拟机发布到CentOS上

记得在这里配置磁盘大小,点下一步还有root密码

 

dotnet core2.2 通过虚拟机发布到CentOS上

成功安装之后,使用root登录  (输入密码时是隐藏的)

由于装的迷你版本的,里面应该不存在网卡驱动,可以用ping baidu.com和ifconfig两个命令测试一下

dotnet core2.2 通过虚拟机发布到CentOS上

这里要安装一下

1.进入网卡地址   cd  /etc/sysconfig/network-scripts   

2. 编辑   vi ifcfg-ens33 将ONBOOT改为yes, 然后退出保存(esc+:wq)

dotnet core2.2 通过虚拟机发布到CentOS上

3. 退出之后重启网卡 service network restart

4.安装包 sudo yum install net-tools  ,中途记得输入y确认

现在ok了,这个是你的IP

dotnet core2.2 通过虚拟机发布到CentOS上

三丶 下载putty,下载filezilla(都去官网)

 

可以不用putty,但是这个比虚拟机操作更方便,最主要是可以复制粘贴

dotnet core2.2 通过虚拟机发布到CentOS上

下载filezilla,filezilla就是一个免费开源的ftp软件,便于我们把.net core发布文件上传到Centos中,直接用centos的ip还有root账号连接,端口用22,之后就可以上传文件了

dotnet core2.2 通过虚拟机发布到CentOS上

 

四 安装dotnet core和nginx环境 ,配置nignx,在centos 运行.net core

 

根据官网进行安装: https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current,记得linux选择centos版本

dotnet core2.2 通过虚拟机发布到CentOS上

 

 安装成功后随便用一个命令检测是否安装成功,例如: dotnet --version

接着继续安装nginx反向代理服务器,用于映射端口方便我们访问

1. 添加nginx存储库:   sudo yum install epel-release

2. 安装ngingx:    sudo yum install nginx

3. 启动nginx:  sudo systemctl start nginx

4. 启动防火墙允许http后台https访问

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

(如果想在系统启动时运行nginx,运行命令:sudo systemctl enable nginx)

直接在本机访问我们上面虚拟机80端口的地址,这里是192.168.64.128,就可以看见nginx界面了

 

 vs创建一个.net core例子,记得在program.cs里面指定路由地址

dotnet core2.2 通过虚拟机发布到CentOS上

 

接着发布到指定文件夹,使用FileZilla上传到centos指定位置,我这里上传到/home/hello里面的

dotnet core2.2 通过虚拟机发布到CentOS上

在centos查看一下文件是否存在

 dotnet core2.2 通过虚拟机发布到CentOS上

可以看到文件已经过来了,接下来运行起来 dotenet Test.dll

dotnet core2.2 通过虚拟机发布到CentOS上

运行成功后,不能按Ctrl+z,否则进程会被暂停,外部访问会出现

dotnet core2.2 通过虚拟机发布到CentOS上

 

这里,我们重新打开一个putty,用root账号连接上centos

进入nginx配置的默认菜单:cd /etc/nginx

编辑nginx.conf文件,屏蔽所有默认的80端口反向代理

dotnet core2.2 通过虚拟机发布到CentOS上

 

 dotnet core2.2 通过虚拟机发布到CentOS上

 

 并且加入自己的反向代理用80端口指向5000

dotnet core2.2 通过虚拟机发布到CentOS上

 

重新加载并且重启nginx

nginx -s reload

systemctl restart nginx

好了现在就可以在本机访问了

dotnet core2.2 通过虚拟机发布到CentOS上

 

 

 

PS:

1. 如果出现502

 

dotnet core2.2 通过虚拟机发布到CentOS上

原因:SELinux配置问题。 
解决:关闭SELinux。 
输入:sestatus,如果SELinux status: enabled ,表示开启,输入vi /etc/selinux/config 修改配置:SELINUX=disabled。 

 然后重启CentOS

 

 2. 如果出现

Job for nginx.service failed because the control process exited with error code

出现这个错误则是default.conf或nginx.conf文件,查看是否少写了一个分号,确实不行就卸载nginx再重装

 

可能会需要用到的一些命令:

nginx停止:   

ps -ef|grep nginx 查看所有进程

kill -9 PID 杀死进程
nginx重启: 

sudo service nginx restart

nginx卸载:

 yum remove nginx   记得删除nginx相关的所有文件

看下是否删除成功  which nginx

查看某个端口的进程

netstat   -anp   |   grep  端口号

杀掉进程: kill -9 PID

 访问网址:  curl  网址  (curl http://192.168.64.128)

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

算法4:合并排序的套路 | 重用 | 分治

2020-11-9 4:44:08

随笔日记

你创建的对象真正占了多少内存?

2020-11-9 4:44:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索