Alibaba Cloud Linux 4 环境下部署 .NET 8 环境,来部署运行项目
一:配置安装 .NET 8 环境
cs
# 1. 下载 .NET 8 运行时(x64 版本)
wget https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.419/dotnet-sdk-8.0.419-linux-x64.tar.gz
# 具体版本根据自己实际需要修改
# 2. 创建安装目录
sudo mkdir -p /usr/share/dotnet
# 3. 解压到安装目录
sudo tar -xzf dotnet-sdk-8.0.419-linux-x64.tar.gz -C /usr/share/dotnet
# 4. 创建符号链接(让系统能找到 dotnet 命令)
sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
# 5. 验证安装
dotnet --version
如果验证过程中,出现下面的报错
cs
Process terminated. Couldn't find a valid ICU package installed on the system. Please install libicu (or icu-libs) using your package manager and try again.
这个错误是 .NET 5/6/7/8 需要 ICU 库(International Components for Unicode)来支持全球化功能,但你的最小化安装的 Alibaba Cloud Linux 系统缺少这个库
执行下面的命令就行
cs
# 对于 Alibaba Cloud Linux (兼容 RHEL/CentOS)
sudo yum install -y libicu
# 安装完成后,再次验证
dotnet --version
二:开发工具里 发布 你的项目 将 publish文件夹复制到服务器对应地址
三:以后台进程形式运行脚本
1:在/etc/systemd/system/ 新建 myapp.service文件
也就是要有一个 /etc/systemd/system/myapp.service 文件
2:复制内容如下
cs
[Unit]
Description=My .NET 8 Web Application
[Service]
WorkingDirectory=/data #你的项目目录地址
ExecStart=/usr/bin/dotnet /data/Shop.dll --urls=http://*:5000 # 你的项目dll文件名和 端口
Restart=always
# 以什么用户运行,建议不要用root,可以创建一个普通用户
User=xxx
# 如果程序崩溃,等待10秒后重启
RestartSec=10
# 将日志输出到系统日志
SyslogIdentifier=myapp
[Install]
WantedBy=multi-user.target
3:重新加加载systemd
cs
# 重新加载systemd,使其识别新创建的服务
sudo systemctl daemon-reload
# 设置服务开机自启
sudo systemctl enable myapp.service
# 立即启动服务
sudo systemctl start myapp.service
# 查看服务运行状态
sudo systemctl status myapp.service
此时状态 有 active(running) 就ok了
四:云服务提供商放开你要的端口
浏览器中输入 Ip:5000/xxxxx 就可以访问了