1、下载安装SDK和运行时


//按照命令依次往下执行即可:
//1.安装SDKsudo dnf install dotnet-sdk-5.0

//2.安装运行时sudo dnf install aspnetcore-runtime-5.0

//3.查看SDKb版本dotnet --list-sdks
2、安装源代码管理工具
(1)安装Git
sudo yum -y install git

//查看是否安装成功git --version
3、发布项目
(1)运行【Blog.Core.Publish.Linux.sh】该项目,但是会提示权限不足。
//文件里代码如下:
git pull;rm -rf .PublishFiles;dotnet build;dotnet publish -o /home/Bookkeeping/Bookkeeping.Api/bin/Debug/net5.0;cp -r /home/Bookkeeping/Bookkeeping.Api/bin/Debug/net5.0 .PublishFiles;echo "Successfully!!!! ^ please see the file .PublishFiles";
./Blog.Core.Publish.Linux.sh

(2)赋予最高权限,然后再次执行。
chmod 777 ./Blog.Core.Publish.Linux.sh

(3)然后会自动执行,执行结果如下,然后刷新文件夹,可以看出多了一个【.PublishFiles】文件夹,说明发布成功。

(4)属于”dotnet”命令运行项目。
dotnet xxx.dll

4-1、守护进程(方法一)
(1)进入Home文件夹下,然后安装Node.js
//1.切换到home文件夹下cd /home///2.下载Node.jswget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz//3.解压tar -xf node-v12.16.3-linux-x64.tar.xz//4.设置全局变量vim /etc/profilePATH=$PATH:/home/node-v12.16.3-linux-x64/bin/

(2)然后刷新配置文件
source /etc/profile
(3)测试结果,有版本号说明安装成功了。
npm -vnode -v

(4)当然,想要更快,可以使用淘宝的国内镜像cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org

(4)输入以下命令安装pm2
cnpm install -g pm2
//pm2常用命令
pm2常用命令记录$ pm2 start app.js # 启动app.js应用程序$ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例# 4个应用程序会自动进行负载均衡$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"$ pm2 start app.js --watch # 当文件变化时自动重启应用$ pm2 start script.sh # 启动 bash 脚本$ pm2 list # 列表 PM2 启动的所有的应用程序$ pm2 monit # 显示每个应用程序的CPU和内存占用情况$ pm2 show [app-name] # 显示应用程序的所有信息$ pm2 logs # 显示所有应用程序的日志$ pm2 logs [app-name] # 显示指定应用程序的日志$ pm2 flush # 清空所有日志文件$ pm2 stop all # 停止所有的应用程序$ pm2 stop 0 # 停止 id为 0的指定应用程序$ pm2 restart all # 重启所有应用$ pm2 reload all # 重启 cluster mode下的所有应用$ pm2 gracefulReload all # Graceful reload all apps in cluster mode$ pm2 delete all # 关闭并删除所有应用$ pm2 delete 0 # 删除指定应用 id 0$ pm2 scale api 10 # 把名字叫api的应用扩展到10个实例$ pm2 reset [app-name] # 重置重启数量$ pm2 startup # 创建开机自启动命令$ pm2 save # 保存当前应用列表$ pm2 resurrect # 重新加载保存的应用列表$ pm2 update # Save processes, kill PM2 and restore processes$ pm2 generate # Generate a sample json configuration file
//安装成后,输入以下命令查看是否安装成功:
(5)进入需要发布项目的根目录。
(6)我们已经进去了/home/bookkeeping_website/.PublishFiles/文件夹,通过执行dotnet名利判断项目可以运行,那接下来我们换一种写法,守护一下这个进程
pm2 start "xxx.dll" --name apk.dll

4-2、守护进程(方法一:推荐)
(1)在【/etc/systemd/system】下新建文件(推荐使用winscp),文件名以.service结尾,配置内容为(注意:中文注释需要删掉,否则部分 Linux 服务器会报错):
[Unit]Description=blogcore #服务描述,随便填就好[Service]WorkingDirectory=/website/blogcore #工作目录,填你应用的绝对路径ExecStart=/usr/bin/dotnet /website/blogcore/CZKJ.CMS.Web.dll #启动:前半截是你dotnet的位置(一般都在这个位置),后半部分是你程序入口的dll,中间用空格隔开Restart=alwaysRestartSec=25 #如果服务出现问题会在25秒后重启,数值可自己设置SyslogIdentifier=blogcore #设置日志标识,此行可以没有User=root #配置服务用户,越高越好Environment=ASPNETCORE_ENVIRONMENT=Production[Install]WantedBy=multi-user.target
(2)写完配置文件后保存,输入指令确认服务:
systemctl enable (你的服务名).service;例如:systemctl enable blogcore.service;
(3)然后启动服务
systemctl start (你的服务名).service例子:systemctl start blogcore.service
(4)然后查看一下服务状态, 出现状态说明服务运行正常。
systemctl status 你的服务名例如:systemctl status blogcore
5、开放端口
4.2.1-添加http服务到firewalld,pemmanent表示永久生效,若不加—permanent系统下次启动后就会失效。
sudo firewall-cmd --permanent --add-service=http
//使用FirewallID:
#手动开启端口:5656firewall-cmd --permanent --zone=public --add-port=5656/tcp#重启firewall-cmd --reload
6、端口问题
当遇到端口重复,先杀死进程,在重启。
