第一步:安装.NET 6运行时
1,执行命令dnf info dotnet,查看软件包里.NET的版本,因为之前Centos 8 原有的镜像源已经废弃,所以老用户可能有,新用户要是查看不了的话,就按照下面手动安装;
2. 手工去找.NET 6运行时安装包地址。打开Download .NET 6.0 (Linux, macOS, and Windows),找到ASP.NET Core Runtime 6.0.0下,Linux下,Binaries下的X64,直接会新窗口下载,不让他下载,直接获取下载地址,我获取到的是:
3.运行命令
curl -Lo dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/d97d1625-d7ed-444c-a7e9-e7b469842960/d8b97220d0d79119e3026da2b956854e/dotnet-sdk-6.0.414-linux-x64.tar.gz
4,运行命令 mkdir dotnet
5,运行命令 tar -C dotnet -xf dotnet.tar.gz
6,运行命令 export DOTNET_ROOT=~/dotnet
7,运行命令 export PATH=$PATH:~/dotnet
8,运行命令 dotnet --info,看看是不是成功安装了6.0.0
第二步:配置守护进程
1,在服务器根目录(/)下创建一个名 /www/myweb 的目录,用来存放我们的发布文件
2,最好先把asp.net core 6测试项目发布后,上传到上面的目录中
3,为使每次服务器重启能自动启动我们的应用程序和监测应用程序的运行状态,我们需要把我们的应用配置为 守护进程。运行命令
vim /etc/systemd/system/myweb.service
复制下面的内容粘贴进去,然后退出保存(方法:1. 按“i”进入编辑,2. 按“Esc”退出编辑,进入查看模式,3. 按“:wq”退出编辑器)
[Unit]
Description=MyWeb
[Service]
WorkingDirectory=/www/myweb
ExecStart=/root/dotnet/dotnet /www/myweb/myweb.Web.dll --urls=http://0.0.0.0:3000
Restart=always
RestartSec=10
SyslogIdentifier=myweb
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
注意,ExecStart和WorkingDirectory两行,/app/myweb/myweb.Web.dll换成你自己项目的dll文件,路径要和你本身一致
坑:服务进程ip要设置为:0.0.0.0,否则设置成localhost会造成,监听是本地回环地址,公网访问不了,导致访问被拒
4,执行 systemctl enable myweb.service // 配置守护进程,每次开机都会自行启动
5,执行 systemctl start myweb.service // 立即启动进程
6,执行 systemctl status myweb.service(查看进程状态),若看到绿色的active(running)字样说明服务正常启动了。(重启命令是systemctl restart myweb.service,建议每次操作守护进程之后,都重启一下服务)