本文介绍了使用方法。net核心来部署到linux服务器。通过本文,你将了解到虚拟机下linux的安装,XShell和XFTP的使用,Linux下git的交互使用,以及发布和运行的全过程。Linux下的NET
本文介绍了使用方法。net核心来部署到linux服务器。通过本文,你将了解到虚拟机下linux的安装,XShell和XFTP的使用,Linux下git的交互使用,以及发布和运行的全过程。Linux下的NET核心。本文就部署过程中遇到的一些问题总结了一些经验和注意事项,与大家分享,供大家参考。欢迎讨论交流。
1.安装Linux操作系统、Xshell和Xftp操作系统可以选择您熟悉的Linux发行版。如果你是Linux新手,建议用CentOs,因为这篇文章的内容都是用CentOs演示的。
至于系统的安装,可以选择云服务器,也可以使用虚拟机安装。安装CentOs虚拟机的方法可以参考:全网捕捉,一篇文章讲解虚拟机的安装和Linux的使用。
1.1,Xshell连接工具我们建议使用XShell作为连接工具。下载地址是https://www.netsarang.com/zh/xshell-download/.
Xshell是一款功能强大的安全终端模拟软件,支持微软Windows平台的SSH1、SSH2、TELNET协议。Xshell通过互联网安全连接到远程主机,其创新的设计和功能有助于用户在复杂的网络环境中享受工作。
利用Xshell可以在Windows界面下访问不同远程系统中的服务器,从而达到远程控制终端的目的。此外,它还有丰富的配色方案和风格选择。
安装完成后,打开软件,点击左上角的新建回复按钮,打开新建回复属性,如下图所示:
在[主机]中填写服务器的ip地址,设置相应的用户和密码,然后单击[连接]。成功连接的界面如下:
1.2.Xftp文件上传工具
可以使用Xftp工具上传或git仓库传输等其他方法与外部Linux服务文件进行交互。本文将演示如何使用Xftp和git warehouse来传输代码文件。Xftp工具,下载地址:https://www.netsarang.com/zh/xftp-download/
Xftp是一个强大的文件传输软件,用于Sftp和FTP。使用Xftp,MS Windows用户可以安全地在UNIX/Linux和Windows PC之间传输文件。
安装完成后,可以通过XShell一键打开Xftp。Xftp打开后,可以在软件右侧切换要上传文件的目的路径,然后拖动文件到右侧释放,就自动上传了。
1.3、中转使用git仓库相对来说,使用Git仓库中转是我们推荐的使用方式。在频繁的迭代更新中,文件在本地编译和发布,然后复制到服务器。这个操作过程略显繁琐。但是,通过git存储库进行传输相对简单。开发者只需要将开发的代码推送到git仓库,然后在服务器中进行构建、发布等操作,减少了复制文件的繁琐过程。因为构建和发布都在服务器端执行,所以可以编写shell部署脚本,最终实现一键快速部署。
要使用git,需要在服务器上安装git客户端,配置ssh公钥(配置公钥的目的是拉私有仓库,公共仓库不需要配置公钥)。
下面解释具体操作步骤:
首先,安装git客户机并执行以下命令:
yum -y install git
如果安装过程中出现错误:无法’测试解析主机
通常,DNS服务器配置不正确。解决办法:
1。打开文件/etc/resolv.conf并添加:
2.退出并保存后重新启动网络:
服务网络重启
安装git后,通过以下命令生成sshkey:
# 这里的xx@xxx.com只是生成的sshkey的名称,并不约束货要求具体命名为某个邮箱。ssh-keygen -t rsa -C "xx@xxx.com"
根据提示,按三次enter生成sshkey,如下图所示:
可以通过以下命令查看公钥:
cat ~/.ssh/id_rsa.pub
生成的sshkey被配置到代码存储库的公钥中。
公钥已经生成。在代码托管平台上如何配置?
接下来,我们将学习如何在gitee代码托管平台(类似于github)下配置公钥。
进入私有仓库的【管理】页面,找到【公钥管理】,点击【添加公钥】,复制新生成的公钥,如下图所示:
出现“Hi xxx”字样,表示git公钥配置成功。
ssh -T git@gitee.com
您需要确认并将主机添加到本地SSH信任列表,如下图所示:
输入yes后出现类似Hi xxx的东西,表示git公钥配置成功。
2.安装。NET Core SDK和运行时前面我们已经做了部署前的准备,安装了xshell,xftp,git,配置了仓库的公钥等。
接下来,我们将安装。linux服务器上的net core sdk。
的。NET运行库是运行。NET程序,而SDK是不必要的。但是如果是git传输文件,需要在服务器端编译,所以也需要安装SDK。(注:docker部署模式不需要在服务器上安装SDK和运行时,我们将在下一篇文章中介绍)
我们来看看如何在CentOs中安装SDK和runtime(其他环境请参考官方文档:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux)。
安装前。NET中,我们需要将Microsoft包签名密钥添加到可信密钥列表中,并添加Microsoft包存储库。如果。之前安装了NET Core3.1,这一步可以省略。
运行以下命令将Microsoft包签名密钥添加到可信密钥列表中,并添加Microsoft包存储库。
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
使用以下命令安装SDK:
sudo yum install -y dotnet-sdk-5.0
的。NET Core SDK使您能够通过。网芯。
安装完成后,您可以验证安装。
dotnet & # 8211信息
使用以下命令安装netcore运行时:
sudo yum install -y aspnetcore-runtime-5.0
注意:上述命令中的最后5.0表示版本号。如果安装了3.1等其他版本,只需修改相应的版本号即可。参考:https://dotnet.microsoft.com/download/dotnet-core
如果。已经安装了NET Core sdk,没有必要安装相应的运行时。我们已经在上面安装了SDK,在安装运行时会提示已经安装了,如下图所示。
3.将程序发布到服务器
在之前的准备工作中,我们介绍了两种向服务器发布文件的方式,分别是xftp和git。下面,我们将分别演示这两种方式的方法和步骤。
3.1.通过Xftp发布到服务器首先,准备要发布的程序。
下图是。我创建的NET5.0:
可以通过打开vs的程序包管理器控制台,执行如下命令进行发布:您可以通过打开vs的包管理器控制台并执行以下命令来发布:
dotnet publish -o ./publish
也可以右键单击该项目并将其发布到文件夹,如下图所示。
这里需要注意的是依赖于框架的部署模式,因为我们已经安装了。NET核心环境之前,所以我们这里不使用独立部署模式,默认是“框架依赖”的。
框架取决于部署:
依赖于框架的部署(FDD)依赖于共享的系统级版本的存在。目标系统上的NET Core。因为。NET核心已经存在,应用程序是可移植的。NET核心安装程序。应用程序只包含它自己的代码和。NET核心库。FDD包含。可以在命令行上使用dotnet程序启动的dll文件。例如,app.dll网络公司可以运行一个叫做app的应用程序。
对于FDD,只部署应用程序和第三方依赖项。不需要部署。因为应用程序将使用。目标系统上存在的. NET核心。这是的默认部署模型。NET核心和ASP.NET核心应用程序。网芯。
优点:
①不需要定义。NET核心应用程序将提前运行。因为可执行文件和。NET核心都是通用的PE文件格式,与操作系统无关。NET Core可以执行应用程序,而不考虑基本的操作系统。
②部署包很小。只需要部署应用程序及其依赖项,而不需要部署。网芯本身。
③许多应用程序可以使用相同的。NET Core安装,从而减少主机系统上的磁盘空和内存使用。
缺点:
①应用程序只能在。NET Core或更高版本安装在主机系统上。
②如果不知道未来版本,的运行时车库。净核心可能会改变。在极少数情况下,这可能会改变应用程序的行为。
独立部署:
独立部署(SCD)不依赖于目标系统上存在的共享组件。所有组件(包括。网芯库克。NET核心运行时)包含在应用程序中,并且独立于其他。NET核心应用程序。SCD包括一个可执行文件(如Windows平台上名为app的应用程序的app.exe),它是特定于平台的重命名版本。NET核心主机,还有一个. dll文件(比如app.dll),就是实际的应用。
对于独立部署,您可以部署应用程序和所需的第三方依赖项,以及。用于生成应用程序的. NET核心。创建SCD不包括。NET核心在各种平台上的本机依赖关系,所以在运行应用程序之前,这些依赖关系必须存在。
优点:
①,可以对的版本进行独立控制。NET Core与应用程序一起部署
②,目标系统可以运行您的。NET核心应用程序,因为您提供了。应用程序将在其上运行的. NET核心。
缺点:
①。因为。NET Core包含在部署包中,则需要预先选择生成部署包的目标平台
②。部署包相对较大,因为。需要包括. NET核心和应用程序及其第三方依赖项。
③部署大量独立的。NET核心系统的应用程序可能会使用大量的磁盘空,因为每个应用程序都会复制。NET核心文件。
从上图可以看出,发布文件的路径是:bin/Release/net5.0/publish/
打开Xftp,将发布文件夹拖动到Xftp右侧窗口,完成上传。
切换到发布的目录开始运行,如下图所示,运行成功。
您也可以指定一个端口。
#启动站点,自定义端口号,运行环境dotnet Core50Test.dll --urls="http://*:8081;http://*:8082" --environment=Development
在这里配置Urls,如果需要局域网或外网访问,不能填写urls = & # 8221http://localhost:8081;http://localhost:8082 ″
3.2.通过git传输和释放首先,将代码推送到git存储库,并复制SSH地址。如下图所示:
然后,在服务器中,执行克隆命令:
mkdir core50testcd core50testgit clone git@gitee.com:******/core50test.git
执行结果如下图所示:
此时,项目代码已经下载到服务器上。将工作目录切换到解决方案所在的目录。
cd core50test
然后执行dotnet publish命令来编译和发布程序。
dotnet publish -o /yonghu/web/publish
执行后,编译和发布的文件将保存在/胡勇/web/publish目录中。
将工作目录切换到/胡勇/web/publish,并执行以下命令:
dotnet core50test.dll
执行结果如下:
到这里为止,咱们的程序已经在linux服务器运行起来了。
到目前为止,我们的程序一直运行在linux服务器上。
RDIFramework.NET
通过上面的介绍,相信很多小伙伴对发布的有了深刻的了解。netcore项目到linux,但是这些操作还是略显繁琐,启动、停止、取数等。都是分开处理的。在下一篇文章中,我们将介绍如何使用Supervisor+Nginx和shell脚本来实现的高效部署。网芯。