HCRM博客

如何在CentOS上安装和配置.NET环境?

在CentOS上安装和部署.NET Core应用程序是一个涉及多个步骤的过程,本文将详细介绍如何在CentOS 7或CentOS 8上安装.NET SDK和运行时,创建并发布一个.NET Core MVC项目,并将其部署到Linux服务器上,还会提供一些常见问题的解决方案。

一、安装.NET SDK和运行时

1. 添加Microsoft包存储库

如何在CentOS上安装和配置.NET环境?-图1
(图片来源网络,侵权删除)

在开始之前,需要将Microsoft的包签名密钥添加到受信任的密钥列表中,并添加Microsoft的包存储库,打开终端并运行以下命令:

sudo rpm Uvh https://packages.microsoft.com/config/centos/7/packagesmicrosoftprod.rpm

对于CentOS 8,使用以下命令:

sudo dnf install https://packages.microsoft.com/config/rhel/8/packagesmicrosoftprod.rpm

2. 安装.NET SDK

.NET SDK允许你通过.NET开发应用程序,如果安装了.NET SDK,则无需单独安装运行时,要安装.NET SDK,请运行以下命令:

对于CentOS 7:

sudo yum install dotnetsdk6.0

对于CentOS 8:

如何在CentOS上安装和配置.NET环境?-图2
(图片来源网络,侵权删除)
sudo dnf install dotnetsdk6.0

3. 安装ASP.NET Core运行时

如果你只想运行应用程序而不进行开发,可以只安装运行时,ASP.NET Core运行时是最兼容的运行时,运行以下命令进行安装:

对于CentOS 7:

sudo yum install aspnetcoreruntime6.0

对于CentOS 8:

sudo dnf install aspnetcoreruntime6.0

4. 验证安装

安装完成后,可以使用以下命令查看当前安装的.NET SDK和运行时版本:

如何在CentOS上安装和配置.NET环境?-图3
(图片来源网络,侵权删除)
dotnet listsdks
dotnet listruntimes

二、创建并发布.NET Core MVC项目

1. 创建项目

使用Visual Studio或命令行工具创建一个新的.NET Core MVC项目,使用以下命令创建一个名为WebApplication2的项目:

dotnet new mvc n WebApplication2

2. 修改默认端口(可选)

如果需要修改项目的默认端口,可以在Program.cs文件中设置:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }
    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>()
                          .UseUrls("http://*:5001"); // 设置端口为5001
            });
}

3. 打包项目

将项目发布到一个文件夹中:

dotnet publish c Release o out

4. 测试本地运行

在本地运行打包后的项目,确保一切正常:

cd out
dotnet WebApplication2.dll

如果浏览器显示项目首页,说明打包成功。

三、部署到CentOS服务器

1. 上传项目文件

将打包好的项目文件上传到CentOS服务器,可以使用FTP工具如FileZilla,或者使用SCP命令:

scp r /path/to/out user@your_server_ip:/path/to/destination

2. 开放防火墙端口

确保防火墙允许HTTP和HTTPS流量通过,运行以下命令开放5001端口:

firewallcmd permanent zone=public addport=5001/tcp
firewallcmd reload

3. 运行项目

在CentOS服务器上运行项目:

cd /path/to/destination
nohup dotnet WebApplication2.dll urls http://*:5001 &

四、使用Nginx代理请求(可选)

为了提高安全性和性能,可以使用Nginx作为反向代理服务器,将80端口的流量转发到5001端口,以下是配置步骤:

1. 安装Nginx

运行以下命令安装Nginx:

sudo yum install epelrelease
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

2. 配置Nginx

编辑Nginx配置文件,通常位于/etc/nginx/conf.d/目录下,创建一个新文件如myapp.conf如下:

server {
    listen 80;
    location / {
        proxy_pass http://localhost:5001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keepalive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

重新加载Nginx配置:

sudo systemctl reload nginx

访问服务器的IP地址时,Nginx会将请求转发到运行在5001端口的.NET Core应用程序。

五、常见问题及解决方案

Q1:如何更改.NET Core应用程序的端口数?

A1:要更改.NET Core应用程序的监听端口,可以在Program.cs文件中的CreateHostBuilder方法中设置UseURLs选项,将端口更改为5001:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>()
                      .UseUrls("http://*:5001"); // 设置端口为5001
        });

然后重新编译并发布项目。

Q2:如何解决“Couldn't find a valid ICU package installed on the system”错误?

A2:这个错误通常是因为没有安装必要的ICU包,可以通过以下命令安装ICU包:

sudo yum install libicu

或者从[这里](https://centos.pkgs.org/7/centosx86_64/libicu50.24.el77.x86_64.rpm.html)下载libicu50.24.el77.x86_64.rpm包并进行安装:

sudo yum install libicu50.24.el77.x86_64.rpm

安装完成后,再次尝试运行你的.NET Core应用程序。

本文详细介绍了在CentOS上安装和部署.NET Core应用程序的整个过程,包括安装SDK和运行时、创建和发布项目、上传到服务器以及配置Nginx反向代理等步骤,通过这些步骤,你可以在CentOS上顺利运行.NET Core应用程序,并解决一些常见的问题,希望这篇文章对你有所帮助!

分享:
扫描分享到社交APP
上一篇
下一篇