随着微软推出的 .NET Core(现已更名为 .NET 5 及后续版本,统一称为 .NET),开发者们得以在多种操作系统上构建和运行高性能的应用程序,其中就包括广受欢迎的 Linux 系统
本文将详细指导您如何在 Linux 上安装并配置 .NET Core 应用程序作为服务,确保其在后台稳定运行,同时提供系统级的管理功能
一、准备工作 1.选择合适的 Linux 发行版 .NET Core 支持多种 Linux 发行版,包括但不限于 Ubuntu、CentOS、Debian 和 Fedora
根据您的具体需求选择适合的发行版
本文将以 Ubuntu Server 20.04 LTS 为例进行演示
2.系统更新 在开始之前,确保您的 Linux 系统是最新的
这有助于避免潜在的兼容性问题
sudo apt update sudo apt upgrade -y 3.安装必要的依赖 安装一些基本的工具和库,这些通常对于后续步骤是必要的
sudo apt install -y wget curl libunwind8 gettext apt-transport-https 二、安装 .NET SDK 和运行时 1.注册 Microsoft 产品密钥 首先,您需要注册 Microsoft 的密钥和源,以便从官方仓库下载 .NET
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb 更新 apt 索引以包含新的仓库
sudo apt update 2.安装 .NET SDK 根据您的项目需求,选择合适的 .NET SDK 版本进行安装
以下命令安装最新的 LTS 版本(示例为 .NET 6)
sudo apt install -y dotnet-sdk-6.0 验证安装是否成功
dotnet --version 3.安装 .NET 运行时(可选) 如果您的应用程序只需要运行时而不需要编译,可以单独安装运行时
sudo apt install -y dotnet-runtime-6.0 三、部署 .NET Core 应用程序 1.准备应用程序 确保您的 .NET Core 应用程序已经编译成发布版本(Release),并且包含所有必要的依赖项
您可以使用以下命令在开发环境中进行发布: dotnet publish -c Release -o ./publish 将生成的`publish`文件夹内容传输到您的 Linux 服务器
这可以通过 SCP、FTP 或其他文件传输工具完成
2.设置应用程序目录 在服务器上创建一个目录来存放您的应用程序文件
sudo mkdir -p /var/www/myapp sudo cp -r /path/to/your/published/files/ /var/www/myapp/ 3.配置环境变量(可选) 根据应用程序的需要,您可能需要设置一些环境变量
例如,通过编辑`/etc/environment` 文件或创建一个新的 `.env` 文件(如果使用框架支持)
sudo nano /etc/environment 添加例如:ASPNETCORE_ENVIRONMENT=Production 或者,在应用程序目录中创建一个`.env` 文件
nano /var/www/myapp/.env 添加环境变量 四、配置 Systemd 服务 Systemd 是现代 Linux 发行版中用于系统和服务管理的工具
以下步骤将指导您如何将 .NET Core 应用程序配置为 Systemd 服务
1.创建服务文件 在 `/etc/systemd/system/` 目录下创建一个新的服务文件,例如`myapp.service`
sudo nano /etc/systemd/system/myapp.service 添加以下内容(根据您的实际路径和需求调整): 【Unit】 Description=My .NET Core App After=network.target 【Service】 WorkingDirectory=/var/www/myapp ExecStart=/usr/bin/dotnet /var/www/myapp/MyApp.dll Restart=always User and Group should be set to a non-root user for security User=your-username Group=your-groupname Environment=ASPNETCORE_ENVIRONMENT=Production EnvironmentFile=/var/www/myapp/.env 【Install】 WantedBy=multi-user.target 2.重新加载 Systemd 配置 每次创建或修改服务文件后,都需要重新加载 Systemd 配置
sudo systemctl daemon-reload 3.启动并启用服务 启动服务并设置其在系统启动时自动启动
sudo systemctl start myapp sudo systemctl enable myapp 4.检查服务状态 查看服务的当前状态,确保它正在运行且没有错误
sudo systemctl status myapp 五、日志管理与监控 为了确保您的应用程序稳定运行,监控和日志记录是必不可少的
1.查看日志 您可以使用`journalctl` 命令查看应用程序的日志输出
sudo journalctl -u myapp -f 2.配置日志轮转 为了防止日志文件无限增长,可以配置日志轮转
创建或编辑 `/etc/logrotate.d/myapp` 文件
sudo nano /etc/logrotate.d/myapp 添加以下内容: /var/log/myapp/.log { daily rotate 7 missingok notifempty compress delaycompress copytruncate } (注意:这里的路径应该根据您的实际日志文件位置进行调整) 六、总结 通过上述步骤,您已经成功地在 Linux 上安装并配置了一个 .NET Core 应用程序作为服务运行
这不仅提高了应用程序的可用性和稳定性,还充分利用了 Linux 系统的强大功能和安全性
随着 .NET 平台的不断演进,跨平台开发变得更加容易,为开发者提供了更多的选择和灵活性
未来,随着更多功能和性能优化的引入,.NET Core(或 .NET)将继续成为构建高效、可扩展应用程序的理想选择