1.在Ngnix下安装.NET Core SDK与Runtime
引用自微软官方文档https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
CentOS 7
前置
运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库
安装SDK
安装运行时
作为 ASP.NET Core 运行时的一种替代方法,可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-6.0
替换为 dotnet-runtime-6.0
:
CentOS 8
安装SDK
安装运行时
安装其他版本SDK
更改上述安装SDK代码中的版本号即可
各版本号参考https://dotnet.microsoft.com/en-us/download/dotnet
在其他系统上安装
其他系统如Ubuntu、Debian、Fedora、macOS请参阅https://docs.microsoft.com/zh-cn/dotnet/core/install/
其他安装方法
转载自https://blog.csdn.net/zhaobw831/article/details/78632675
执行以下命令:
执行完以上命令后,可使用 dotnet --version
查看当前.NET Core版本
2.设置反向代理
宝塔面板
网站 - PHP项目 - 选择想要运行.Net程序的网站 - 设置 - 反向代理 - 添加反向代理 - 按照如下设置填写
开启代理 | 开启缓存 | 代理名称 | 目标URL | 发送域名 |
---|---|---|---|---|
开 | 关 | 自行填写 | http://localhost:5000 | localhost |
其他面板或系统
自行配置Nginx反向代理:只需要配置如下内容,其他不需要修改,把80端口转发到5000即可
3.生成并上传项目至网页目录
4.运行项目
在SSH终端进入项目网页目录并执行以下命令
5.使用Screen保持程序运行
由于Linux的[挂断信号SIGHUP]概念(在此不过多赘述),在关闭终端后运行的.Net Core程序会随着结束。
简而言之 :就是SSH打开以后,Bash等都是他的子程序,一旦SSH关闭,系统将所有相关进程杀掉! 导致一旦SSH关闭,执行中的任务就取消了。
针对这样的情况,我们引入Screen来解决这个问题
安装Screen
流行的Linux发行版(例如Red Hat Enterprise Linux)通常会自带screen实用程序,如果没有的话,可以从GNU screen的官方网站下载。
创建一个新的窗口
安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字(仍然会为它分配一个数字ID),实践上推荐为每个screen会话取一个名字,方便分辨
运行想要的命令
在新建的窗口中进入网站目录并运行第四步的代码
回到root主界面
按下Ctrl-A + D返回主界面,Screen中的命令会保持运行状态,关闭SSH即可大功告成
关于Screen一些简单用法
快捷键:
C-a ? -> 显示所有键绑定信息 C-a c -> 创建一个新的运行shell的窗口并切换到该窗口 C-a n -> Next,切换到下一个 window C-a p -> Previous,切换到前一个 window C-a 0..9 -> 切换到第 0..9 个 window Ctrl+a [Space] -> 由视窗0循序切换到视窗9 C-a C-a -> 在两个最近使用的 window 间切换 C-a x -> 锁住当前的 window,需用用户密码解锁 C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。 C-a w -> 显示所有窗口列表 C-a t -> time,显示当前时间,和系统的 load C-a k -> kill window,强行关闭当前的 window C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样 C-b Backward,PageUp C-f Forward,PageDown H(大写) High,将光标移至左上角 L Low,将光标移至左下角 0 移到行首 $ 行末 w forward one word,以字为单位往前移 b backward one word,以字为单位往后移 Space 第一次按为标记区起点,第二次按为终点 Esc 结束 copy mode C-a ] -> paste,把刚刚在 copy mode 选定的内容贴上
参考文档[https://man.linuxde.net/screen
](https://man.linuxde.net/screen)
后续
一些后续使用方法、心得、教程会陆续更新,此文章最后更新于2022年8月9日18:24