找回密码
 立即注册
查看: 329|回复: 0

[linux] .net6 部署到 CentOS Linux 7 的操作指南

[复制链接]

224

主题

0

回帖

773

积分

高级会员

积分
773
发表于 2024-6-2 12:20:18 | 显示全部楼层 |阅读模式
本帖最后由 御坂主机 于 2024-6-2 12:30 编辑

1. 简介

随着 .net 6 的发布,开发者可以更方便地将 .NET 应用程序部署到 linux 服务器上。本文将详细介绍如何将 .NET 6 应用程序部署到 CentOS Linux 7 上,包括安装 .NET 运行时、配置环境、发布和运行应用程序的全过程。希望通过这篇文章,读者能够掌握在 Linux 环境中部署 .NET 应用的基本步骤和注意事项。

1.1 环境准备

在开始之前,需要确保已经拥有一个 CentOS Linux 7 的服务器,并且具有 root 或具有 sudo 权限的用户。

2. 安装 .NET 6 运行时

首先,需要在 CentOS 7 上安装 .NET 6 运行时。可以通过微软提供的官方包管理器来进行安装。

2.1 添加微软的包管理器

要添加微软的包管理器,需要首先安装必要的依赖:

  1. sudo yum install -y wget
复制代码


然后下载并安装微软的包管理器配置文件:

  1. wget https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
  2. sudo rpm -Uvh packages-microsoft-prod.rpm
复制代码


2.2 安装 .NET 运行时

添加包管理器配置文件后,可以使用 yum 安装 .NET 运行时:

  1. sudo yum install -y dotnet-runtime-6.0
复制代码


通过以下命令验证安装是否成功:

  1. dotnet --version
复制代码


如果输出显示 .NET 运行时的版本号,则表示安装成功。

3. 发布 .NET 6 应用程序

在开发环境中,使用 Visual Studio 或命令行工具发布 .NET 6 应用程序。以下是通过命令行发布应用程序的步骤。

3.1 创建并发布应用程序

在开发环境中打开命令行,导航到 .NET 应用程序的根目录,然后运行以下命令:

  1. dotnet publish -c Release -o ./publish
复制代码


这将创建一个发布版本的应用程序,并将其输出到 ./publish 目录。

4. 部署应用程序到 CentOS 7

将发布好的应用程序文件复制到 CentOS 7 服务器上,可以使用 SCP 或其他文件传输工具。

4.1 使用 SCP 传输文件

在本地开发环境的命令行中运行以下命令,将文件传输到服务器:

  1. scp -r ./publish username@yourserver:/path/to/your/app
复制代码


将 username 替换为服务器的用户名,yourserver 替换为服务器的地址,/path/to/your/app 替换为服务器上存储应用程序的路径。

5. 运行 .NET 6 应用程序

在 CentOS 7 服务器上,导航到应用程序目录并运行应用程序。

5.1 运行应用程序

在服务器上运行以下命令启动应用程序:

  1. dotnet yourapp.dll
复制代码


替换 yourapp.dll 为实际的应用程序文件名。如果一切正常,应用程序将启动并在控制台中显示相关信息。

5.2 配置防火墙

为了使外部能够访问应用程序,需要配置防火墙以允许特定端口的访问。假设应用程序监听 5000 端口,可以使用以下命令开放该端口:

  1. sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
  2. sudo firewall-cmd --reload
复制代码


6. 使用 Systemd 管理 .NET 应用程序

为了在服务器重启后自动启动 .NET 应用程序,可以使用 Systemd 创建一个服务。

6.1 创建 Systemd 服务文件

在 /etc/systemd/system 目录下创建一个新的服务文件,例如 yourapp.service:

  1. sudo nano /etc/systemd/system/yourapp.service
复制代码


在文件中添加以下内容:

  1. [Unit]
  2. Description=Your .NET Application

  3. [Service]
  4. WorkingDirectory=/path/to/your/app
  5. ExecStart=/usr/bin/dotnet /path/to/your/app/yourapp.dll
  6. Restart=always
  7. RestartSec=10
  8. SyslogIdentifier=dotnet-yourapp
  9. User=yourusername
  10. Environment=ASPNETCORE_ENVIRONMENT=Production

  11. [Install]
  12. WantedBy=multi-user.target
复制代码


将 /path/to/your/app 替换为应用程序的实际路径,将 yourapp.dll 替换为实际的应用程序文件名,将 yourusername 替换为实际的用户名。

6.2 启用并启动服务

保存文件后,运行以下命令启用并启动服务:

  1. sudo systemctl enable yourapp.service
  2. sudo systemctl start yourapp.service
复制代码

可以使用以下命令查看服务状态:

  1. sudo systemctl status yourapp.service
复制代码


如果服务正在运行且没有错误,说明配置成功。

7. 总结

本文详细介绍了如何在 CentOS Linux 7 上部署 .NET 6 应用程序。通过安装 .NET 运行时、发布应用程序、传输文件、运行应用程序以及使用 Systemd 管理应用程序,读者可以掌握在 Linux 环境中部署和管理 .NET 应用的基本步骤。这些步骤不仅适用于单个应用程序的部署,还可以扩展到更复杂的部署场景中。希望这篇文章能对读者有所帮助,提升在 Linux 环境中部署 .NET 应用的能力。




------------------------------------------------------------------------------------------------------------------------------------------

========  御 坂 主 机  ========

>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<

>> 推广/合作/找我玩  TG号 : @Misaka_Offical <<

-------------------------------------------------------------------------------------------------------------------------------------------

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-5 02:32 , Processed in 0.075489 second(s), 23 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表