CentOS上部署自己的DotNet项目

2022-08-31 14:38:15 浏览数 (1)

1. 查看环境

这里我的服务器系统是 Linux【CentOS Stream 9】,具体版本对应的安装包请【查看官网】, 暂以 CentOS Stream 9 为例。

通过以下命令查看系统版本

代码语言:javascript复制
uname -a 

2. 安装 DotNet

.NET 包含在 CentOS Stream 9 的 AppStream 存储库中。 但是,.NET Core 3.1 和 .NET 5 已从 CentOS Stream 9 中删除,因此应使用 .NET 6。 有关详细信息,请参阅博客文章在 CentOS Stream 9 中将 .NET 与 OpenSSL 结合使用 | Omair Majid。

2.1. 安装 SDK

.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

代码语言:javascript复制
sudo dnf install dotnet-sdk-6.0

2.2. 安装运行时

通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

代码语言:javascript复制
sudo dnf install aspnetcore-runtime-6.0

作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-6.0 替换为 dotnet-runtime-6.0:

代码语言:javascript复制
sudo dnf install dotnet-runtime-6.0

3. 检查 SDK 版本

可使用终端查看当前安装的 .NET SDK 版本。 打开终端并运行以下命令。

代码语言:javascript复制
dotnet --list-sdks

4. 检查运行时版本

可使用以下命令查看当前安装的 .NET 运行时版本。

代码语言:javascript复制
dotnet --list-runtimes

5. 挂载服务

假如你有一个 DotNet 项目叫做【ZhaiFanhuaBlog】,部署上传在服务器的【/home/web/zhaifanhua.com/demo/ZhaiFanhuaBlog/】路径下。

该项目可执行文件名称是【ZhaiFanhuaBlog.WebApi.dll】,你想用 ip【127.0.0.1】,url【http://*:9708】来访问。

把 DotNet 也变成一个像 mysql,nginx 一样的后台服务,用 systemctl 来管理。可以这样配置:

代码语言:javascript复制
# 编辑配置文件
vim /usr/lib/systemd/system/ZhaiFanhuaImage.service

输入

代码语言:javascript复制
[Unit]
Description=ZhaiFanhuaImage

[Service]
WorkingDirectory=/home/web/zhaifanhua.com/demo/ZhaiFanhuaImage/
ExecStart=dotnet /home/web/zhaifanhua.com/demo/ZhaiFanhuaImage/ZhaiFanhuaImage.dll --urls="http://*:9708" --ip="127.0.0.1"
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=ZhaiFanhuaImage
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

5.2. 更新配置

代码语言:javascript复制
systemctl daemon-reload

进程守护

代码语言:javascript复制
# 设置开机自启动
systemctl enable ZhaiFanhuaBlog
# 停止开机自启动
systemctl disable ZhaiFanhuaBlog

管理命令

代码语言:javascript复制
# -----------管理命令-----------------
# 启动服务
systemctl start ZhaiFanhuaImage
# 停止服务
systemctl stop ZhaiFanhuaImage
# 重新服务
systemctl restart ZhaiFanhuaImage
# 查看状态
systemctl status ZhaiFanhuaImage

6. 访问

6.1. 直接用 ip 访问

6.2. 用 Nginx 反代,用域名访问

0 人点赞