1、ASP.Net Core 环境安装(以3.1版本为例)
1.1 我们使用微软提供的离线安装包进行安装。首先下载tar.gz的离线包,下载网址:
https://dotnet.microsoft.com/en-us/download/dotnethttps://dotnet.microsoft.com/en-us/download/dotnet
选择Linux对应的架构的离线包下载,下载SDK或者Runtime都可以,安装过程是一样的。
1.2 安装packages-microsoft-prod(如若需要,自行提取)
rpm -hvi packages-microsoft-prod.rpm
1.3 创建文件夹
mkdir -p /var/lib/dotnet
1.4 解压并移动到指定目录
tar -zxf dotnet-runtime-3.1.32-linux-x64.tar.gz -C /var/lib/dotnet
1.5 创建软链接方式来设置环境变量
ln -s /var/lib/dotnet/dotnet /usr/local/bin
1.6 查看环境是否安装成功
dotnet --info
1.7 进入项目下,运行项目,查看是否运行成功(Ctrl + C关闭)
dotnet webapi.dll
1.8 如果出现全球化部署错误,就安装libicu(请忽略此步骤,如若需要,自行提取)
rpm -hvi libicu-50.2-4.el7_7.x86_64.rpm
2、设置开机自动启动服务( .NET Core 2.1、.NET Core 3.1、.NET 5)
2.1 在/usr/lib/systemd/system目录下添加服务对应的配置文件(webapi是服务名称)
vi /usr/lib/systemd/system/webapi.service
2.2 配置文件格式如下
[Unit]
Description=服务描述
Before=服务依赖,再这些服务前启动本服务
After=服务依赖,再这些服务后启动本服务
[Service]
WorkingDirectory=发布应用程序的目录
ExecStart=启动命令
ExecStop=终止命令
ExecReload=重启命令
Restart=定义何种情况 Systemd 会自动重启当前服务
RestartSec=自动重启当前服务间隔的秒数
SyslogIdentifier=表示“系统日志标识符”
User=设置进程在执行时使用的用户
Environment=指定环境变量
[Install]
WantedBy=表示该服务所在的服务组
2.3 配置文件格式示例如下
[Unit]
Description=webapi service
[Service]
WorkingDirectory=/root/webapi
ExecStart=/var/lib/dotnet/dotnet /root/webapi/webapi.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet_webapi
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
2.4 开启服务
systemctl start webapi.service
2.5 查询服务是否开启
systemctl status webapi.service
2.6 设置开机自动启动服务
systemctl enable webapi.service
2.7 停止服务(请忽略此步骤,必要时可用)
systemctl stop webapi.service
3、开放防火墙指定端口
3.1 查看防火墙状态
systemctl status firewalld.service
3.2 开启防火墙(若开启状态,请忽略此步骤)
systemctl start firewalld
3.3 查询指定端口是否占用(运行命令后,返回yes表示已打开,返回no表示未打开。)
firewall-cmd --query-port=5000/tcp
3.4 添加需要开放的端口(以端口5000为例)
firewall-cmd --add-port=5000/tcp --permanent
3.5 重新载入添加的端口(运行完这歩,表示添加端口已成功,可以用查看端口开放状态命令,查到是否开启成功)
firewall-cmd --reload
3.6 移除指定端口(请忽略此步骤,必要时可用)
firewall-cmd --permanent --remove-port=5000/tcp
3.7 关闭防火墙和永久关闭防火墙(此处命令慎用,后果自负)
//关闭防火墙
systemctl stop firewalld.service
//永久关闭防火墙
systemctl disable firewalld.service