vm+centos7.0+.net core部署(三)

重点重点重点在这里

linux环境搭建

安装donet运行环境

登录centos服务器后,第一步就是安装dotnet运行库了 对应程序的运行库版本,我用的是3.1

官方地址

打开https://dotnet.microsoft.com/download
https://dotnet.microsoft.com/download/linux-package-manager/centos/sdk-current

官方文档没有细看,我直接用命令装的,有介绍说只运行,不开发,只需安装runtime运行库,我把sdk和运行库都装了。

1、注册 Microsoft 密钥和源

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

# sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

2、安装 .NET Core SDK 

sudo yum update(我没运行yum update,感觉没什么影响)
sudo yum install dotnet-sdk-3.1

# sudo yum install dotnet-sdk-3.1

安装过程没有截图,配一张网上找到的截图,注意修改版本不同。

3、安装 ASP.NET Core 运行时

# sudo yum install aspnetcore-runtime-3.1

4、测试.NET SDK安装成功:

# dotnet --version

# dotnet --info

至此,已经安装成功了。

然后把你的asp.net core发布后的文件上传到服务器上,我用的是WinSCP上传软件,用你的root账号密码登录,协议为SFTP

然后在linux中切换到.net目录上,cd /var/www,然后运行dotnet xxxx.dll

请注意,要需分大小写!要需分大小写!要需分大小写!

dotnet xxxx.dll //一定要注意大小写  

此时本地访问是可以的了。

请注意,现在外网还不能访问你的5000端口的,为什么?

第一,看我上面的listening on http://localhost:5000,这个dotnet默认只监听本地的5000端口,所以外网无法访问,解决方法就是在命令后面加上参数urls

dotnet xxxx.dll --urls http://*:5000 

这条语句的参数写法网上介绍的各不相同,只有这个写法才成功了。带引号和等号的都不行。

另外这种启动方式有个弊端就是,如果是命令方式启动的,关闭Xshell的会话之后,站点同时会自动关闭,无法访问

解决办法:

1.后台进程模式启动和停止站点,避免关闭会话后,站点无法访问

#进入www目录
cd /var/www

#启动站点,自定义端口号,运行环境
nohup dotnet Demo.Net.Core.dll --urls="http://*:8081;http://*:8082" --environment=Delopment > /dev/null 2>&1 &
#实测
nohup dotnet IFXTrade.Core3.dll --urls=http://*:5000 --environment=Delopment > /dev/null 2>&1 &

#查看相关进行
ps -aux | grep "Demo.Net.Core.dll"
#实测
ps -aux | grep " IFXTrade.Core3.dll"

#访问启动的站点
curl http://localhost:8081/weatherforecast

#关闭站点进程,当前进程直接使用Ctrl+c,这里的35520是之前开启的Dotnet 进程ID
kill 35520

这里使用后台进程,关闭Xshell也不会关闭站点,在当前进程,停止站点直接使用Ctrl+c,否则需要找出进程ID,然后KILL进程。

/dev/null:/dev/null相当于执行了command 1 > /dev/null。执行command产生了标准输出stdout(用1表示),重定向到/dev/null的设备文件中
/dev/null可以理解为/dev路径下的空文件;该命令将command命令的标准输出输出到空文件中
2>&1:可以理解为执行command产生的标准输出重定向到文件中,标准错误也重定向到文件中,期间只打开一次文件,&1的含义就可以理解为用标准输出的引用,引用的就是重定向标准输出产生打开的文件。

注意:后台进程虽然可以再Xshell关闭后还能运行,但是当系统关机重启后,进程就没有了,这个时候还是需要手动启动,所以下一篇文章将会介绍为dotnet创建守护进程的方式来保证开机就能访问站点

2.安装守护进程

 

第二 Centos的防火墙默认是开启的,所以端口还得把防火墙关了,或在防火墙里添加个端口

/以下操作二选一
systemctl status firewalld // 查看防火墙状态
systemctl stop firewalld //关闭防火墙
firewall-cmd --zone=public --add-port=5000/tcp --permanent  // permanent参数是永远存在,不然的话,重启后就没有了
firewall-cmd --reload // 重启防火墙 ,添加端口后记得执行此命令

一般来说,现在就你可以通过外网地址加5000的端口访问你的网站了。

再往后要部署安装Nginx 这个我没映射成功,就不在记录了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值