安装宝塔#
宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。
这里节省时间直接使用宝塔面板了,这个真的是太方便了,哈哈。安装也非常简单。
因为我使用的是Ubuntu,安装脚本
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
其他版本请参考官方文档:https://www.bt.cn/download/linux.html
安装完成后会显示登录地址、用户名、密码信息。登录后浏览器将弹出推荐安装套件,为方便直接一键安装LNMP。
安装.NetCore SDK 3.1#
微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu
因为我使用的18.04,所以找到对应文档。
使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。
打开终端并运行以下命令:
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
安装 SDK#
.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-3.1
安装运行时#
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-3.1
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-5.0
替换为 dotnet-runtime-5.0
:
sudo apt-get install -y dotnet-runtime-5.0
其实上述就是照搬微软的官方文档,官方文档还是写的很清楚的。
发布.NetCore项目#
我一开始目标运行时选择的Linux-64,但是出现了这样的错误`错误 NU1605: 检测到包降级: XXXXXXXXXXXXX 从 4.3.0 降级到 XXXXXXXXXXXXX。直接从项目引用包以选择不同版本。
通过查看微软官方文档:https://docs.microsoft.com/zh-cn/nuget/reference/errors-and-warnings/nu1605
问题当在 .NET Core 3.0 或更高版本的项目中同时引用时,与 .NET Core 1.0 和1.1 随附的某些包组合不兼容。 问题包通常以或开头 System.
Microsoft.
,并具有4.0.0 和4.3.1 之间的版本号。 在这种情况下,降级消息将具有从运行时开始的包。 依赖关系链。
解决方案若要解决此问题,请添加以下 PackageReference:
<PackageReference Include="Microsoft.NETCore.Targets" Version="3.0.0" PrivateAssets="all" />
就是添加引用,但实际上你要保证所有项目的包引用版本是一致的。
另一种方法
发布的时候目标运行时直接选择可移植吧~
宝塔面板发布.Net Core项目,并启动项目#
在文件 wwwroot新建项目文件夹,将本地发布文件打包拷贝至服务器解压。
在服务器上终端命令进入部署文件所在目录,然后使用dotnet命令启动服务:
dotnet XXXXXX.Admin.dll --urls "http://localhost:5000"
Nginx设置反代访问#
现在我们还不能直接访问到我们新部署项目,需要使用Nginx设置反向代理,将特定的端口代理到http://localhost:5000
,这一步可以通过宝塔面板来完成,步骤如下:
- 在宝塔面板上新建一个网站,设置为静态网站即可,并绑定好域名。
- 在刚才新建的网站中设置反向代理,目标URL填写http://localhost:5000即可,发送域名localhost
浏览器正式可访问项目,此处可能需要重启一下。
使用 Supervisor 守护进程#
现在还有个问题,就是当我们关闭xShell等SSH工具的时候服务进程也会停止运行,我们可使用 Supervisor 守护进程运行。
- 在宝塔面板上安装Supervisor
- 添加守护进程(用户建议选择www,不要使用root)