目标
windows上开发的dotnet core程序并部署至linux服务器上(Ubuntu 18.04)
步骤
Windows开发
使用Visual Studio2019 创建asp.net core空白项目,创建项目时,选择dotnet core版本选择5.0(Linux服务器中安装的dotnet core runtime版本也是这个)。
简单创建个HomeController,两个Action(Index、UserList),View目录下准备两个视图来呈现。UserList用来显示模拟出来的数据。
创建项目并完成开发
发布
使用VS2019自带发布工具,项目右键选择发布,目标选择文件夹。选好发布存放路径后,配置发布方式目标运行时、部署方式。
两种部署方式的区别在于:
- 独立应用
自带dotnet运行时,可以部署至一台空白环境服务器,无需提前安装配置dotnet运行时。缺点部署包较大。 - 框架依赖型
生成跨平台的部署包,用户只需要安装运行时即可。
接下来将发布出来的文件拷贝至Linux服务器中,使用WinSCP工具拷贝至服务器指定目录上即可。
Linux部署
先决条件
- 安装dotnet core, 运行dotnet程序必备条件(必须)
- 安装supervisor守护进程,可以帮助你自动启动站点(非必须)
- 安装nginx做代理 (非必须)
部署步骤
安装dotnet core
1
2
3
4
5sudo apt-get install dotnet-sdk-5.0 --安装5.0sdk
sudo apt-get install dotnet-runtime-5.0 --安装5.0runtime
cd ~/aspnetcoreforlinux
dotnet run aspnetcoreforlinux -- 此时访问localhost:5000已经可以了安装supervisor
1
2
3
4
5
6
7sudo apt-get install supervisor --安装supervisor
//重新加载配置
sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf
//或重启supervisor
sudo service supervisor stop
sudo service supervisor start为dotnet项目创建配置文件,进入/etc/supervisor/conf.d,新建一个config文件,添加下面的配置文件。注意,目录就是我们从windows上拷贝过来存放的目录。
1 | //新建 |
supervisor开启web端管理,在/etc/supervisor 目录下,打开supervisor.conf 文件,添加如下配置项
1 | [inet_http_server] ;HTTP服务器,提供web管理界面 |
这个时候,点击项目名称连接,可以查看日志。后面的操作可以重启、关闭应用,清除应用日志。关于日志记录位置,上面的配置文件中,我把日志记录在/var/log目录下了。
- 安装nginx
1 | sudo apt-get install nginx --安装nginx |
备注:安装nginx时,使用sudo未能成功,有几个包还会报权限不足。使用su命令,直接切换到管理员账户来安装即可。
复盘
至此,在windows上开发好的aspnet core项目部署到ubuntu上就已经完成了。事实上,关于supervisor和nginx并不是必须的。当我们将服务器中安装了dotnet core运行时,再将发布好的项目文件拷贝到服务器中。使用dotnet run projectname
的方式,就可以运行项目了。这个时候访问项目的地址为localhost:5000。我们在创建项目时,Properties目录下的launchSettings.json中有启动地址的设置。
- 本文作者: 达文西
- 本文链接: https://edsiongithub.github.io/2021/06/01/9/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!