预备工作
1、删除dotnet core sdk
sudo yum erase libunwind libicu
2、删除链接
sudo rm -rf /usr/local/bin
3、更新yum
sudo yum update
4、注册 Microsoft 签名密钥
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
5、添加 Microsoft 产品源(添加 Microsoft 产品源,不然就没有可用的包dotnet-sdk-2.0.0)
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
上面的操作目的 1、从系统中删除 .NET Core 的所有旧预览版本。 2、要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要。每台机器只需要做一次
一、准备条件
1、系统CentOS 7.5
2、使用捷径操作-Linux面板6.8安装命令 (默认创建WWW站点目录)
或者
3、最终的一步 : 然后依次安装依赖库和dotnet core
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.0.0
我当前是7.3
上面是我7.5的时候成功过的
一、RPM方式
1、导入rpm源
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
3、安装基础依赖
sudo yum -y install libunwind libicu
4、安装SDK
sudo yum -y install dotnet-sdk-2.0.0
测试是否安装成功 dotnet --info可以确认是否安装成功
二、操作步骤
1、找到宝塔为你的网站创建号的WWW站点目录然后你在里面创建一个存放Core项目的站点目录 比如(Pulish文件夹-意味发布)
(在顶级目录www/wwwroot 具体 1、cd ../ 2、ls查看是否有www目录 3、cd www/wwwroot 4、mkdir Pulish -创建文件夹里面就是最终放入Core项目源码)
2、压缩Core项目源码为rar格式, Pulish.rar 上传到wwwroot 内(之前创建的Pulish文件夹就可以删除,直接解压就替换掉了)
3、运行命令: dotnet FirstCoreWeb.dll
访问测试结果
# curl http://127.0.0.1:8001
现在我们需要转发 需要修改ngin新配置文件
location / {
proxy_pass http://localhost:8001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
}
重启 Nginx
输入ip地址即
如果是bt创建的站点,则需要在新创站的配置文件加入请求该监听端口的转发配置,然后重启Nginx
守护进程: 比如 dotnet xxx.dll 运行一个dotnetcore网站。你ctr+c 或者关闭命令窗口 dotnet进程就会被关闭掉 你无法访问网站。你就只能打开窗口一直放着,这样肯定有问题的。所以就用进程守护软件守护一下dotnet进程
(亲测:1、Vs2017 写的程序不需要,Vscode则关闭窗口或者Ctr+c进程就会关掉,所以Vscode的程序需要守护进程。2、阿里云服务器不需要配置入口5000或者8001。3、默认端口5000不行,更改的8001才成功。)
创建一个 webapi 项目
# 创建项目 dotnet new webapi --no-https -o testwebapi # 发布项目 cd testwebapi/ dotnet publish -c Release cd bin/Release/netcoreapp2.1/publish # 运行项目 dotnet testwebapi.dll
使用 pm2 守护 ASP.NET Core 应用程序
1、使用pm2需要安装nodejs
2、安装pm2
npm install pm2 -g #安装 pm2
3、结束我们刚刚运行的程序,就在我们刚刚的目录执行下面的命令:
pm2 start "dotnet testwebapi.dll" --name testwebapi
4、查看日志
pm2 logs testwebapi
5、查看应用程序信息
pm2 info testwebapi
6、监控应用程序
pm2 monit testwebapi
7、重启策略
pm2 会在你的应用程序异常退出时,自动帮你重启,所谓异常退出,指退出代码非0。
发布,并使用 pm2 启动(此处略)。
通过 pm2 list
查询应用程序重启次数为0:
访问 api 触发异常退出:
curl http://localhost:5000/api/values
再次通过 pm2 list
命令查询可以发现重启了:
pm2 这个工具相对于 Supervisor 和 nohup 来说,对于Supervisor,没有配置,不用输很长的命令;对于 nohup 管理进程方便。
注意:依赖问题
如果验证出现如下错误
Failed to load /opt/dotnet/shared/Microsoft.NETCore.App/1.1.0/libcoreclr.so, error: libunwind.so.8: cannot open shared object file: No such file or directory
Failed to bind to CoreCLR at '/opt/dotnet/shared/Microsoft.NETCore.App/1.1.0/libcoreclr.so'
则安装:yum install libunwind
如果验证出现如下错误
Failed to initialize CoreCLR, HRESULT: 0x80131500
则安装:yum install icu
端口的问题
其他:将 dotnet 添加到 PATH: export PATH=$PATH:$HOME/dotnet