1. 查看环境
这里我的服务器系统是 Linux【CentOS Stream 9】,具体版本对应的安装包请【查看官网】, 暂以 CentOS Stream 9 为例。
通过以下命令查看系统版本
代码语言:javascript复制uname -a
2. 安装 DotNet
.NET 包含在 CentOS Stream 9 的 AppStream 存储库中。 但是,.NET Core 3.1 和 .NET 5 已从 CentOS Stream 9 中删除,因此应使用 .NET 6。 有关详细信息,请参阅博客文章在 CentOS Stream 9 中将 .NET 与 OpenSSL 结合使用 | Omair Majid。
2.1. 安装 SDK
.NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:
代码语言:javascript复制sudo dnf install dotnet-sdk-6.0
2.2. 安装运行时
通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:
代码语言:javascript复制sudo dnf install aspnetcore-runtime-6.0
作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-6.0 替换为 dotnet-runtime-6.0:
代码语言:javascript复制sudo dnf install dotnet-runtime-6.0
3. 检查 SDK 版本
可使用终端查看当前安装的 .NET SDK 版本。 打开终端并运行以下命令。
代码语言:javascript复制dotnet --list-sdks
4. 检查运行时版本
可使用以下命令查看当前安装的 .NET 运行时版本。
代码语言:javascript复制dotnet --list-runtimes
5. 挂载服务
假如你有一个 DotNet 项目叫做【ZhaiFanhuaBlog】,部署上传在服务器的【/home/web/zhaifanhua.com/demo/ZhaiFanhuaBlog/】路径下。
该项目可执行文件名称是【ZhaiFanhuaBlog.WebApi.dll】,你想用 ip【127.0.0.1】,url【http://*:9708】来访问。
把 DotNet 也变成一个像 mysql,nginx 一样的后台服务,用 systemctl 来管理。可以这样配置:
代码语言:javascript复制# 编辑配置文件
vim /usr/lib/systemd/system/ZhaiFanhuaImage.service
输入
代码语言:javascript复制[Unit]
Description=ZhaiFanhuaImage
[Service]
WorkingDirectory=/home/web/zhaifanhua.com/demo/ZhaiFanhuaImage/
ExecStart=dotnet /home/web/zhaifanhua.com/demo/ZhaiFanhuaImage/ZhaiFanhuaImage.dll --urls="http://*:9708" --ip="127.0.0.1"
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=ZhaiFanhuaImage
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
5.2. 更新配置
代码语言:javascript复制systemctl daemon-reload
进程守护
代码语言:javascript复制# 设置开机自启动
systemctl enable ZhaiFanhuaBlog
# 停止开机自启动
systemctl disable ZhaiFanhuaBlog
管理命令
代码语言:javascript复制# -----------管理命令-----------------
# 启动服务
systemctl start ZhaiFanhuaImage
# 停止服务
systemctl stop ZhaiFanhuaImage
# 重新服务
systemctl restart ZhaiFanhuaImage
# 查看状态
systemctl status ZhaiFanhuaImage
6. 访问
6.1. 直接用 ip 访问
6.2. 用 Nginx 反代,用域名访问