Linux(Kylin)上部署.net core项目

借助百度词条,先看看Kylin是什么:

 接下来说明部署的步骤:

我需要部署的项目是在Windows上开发的,目标框架为.net core 3.1。因此我们需要先在kylin上部署项目运行所需要的环境

1:在官网下载对应版本的SDK

Download .NET Core 3.1 (Linux, macOS, and Windows) (microsoft.com)https://dotnet.microsoft.com/en-us/download/dotnet/3.1

 根据自己的需要下载对应的二进制文件

2.运行终端,将二进制文件复制到/usr/share/dotnet 里面,如果没有dotnet文件需要先创建。

创建文件夹的命令:mkdir -p (路径 例如 /usr/share/dotnet)dotnet

复制文件的命令:cp -r 目标文件目录   新目录  例如:cp -r /kylin/下载/xxx.txt   /usr/share/dotnet

3.终端进入到dotnet 目录下 (cd /usr/share/dotnet) ,解压二进制文件

命令:tar -zxvf xxx.gz

4.将dotnet 添加到全局 命令:ln -s /usr/share/dotnet/dotnet  /usr/local/bin 

5.检测是否安装成功 命令:dotnet --info  运行成功会显示sdk runtime的安装情况。

 6.到此可以先测试一下环境,看看是否有问题,运行以下命令:

dotnet new       初始化cli

dotnet new mvc   新建一个core 的app

dotnet reload    重建加载dotnet

dotnet run       运行这个项目

打开网址http://localhost:80,打开看到asp.core的话证明dotnet是管用的,关闭按ctrl+c

安装nginx

1.先下载 nginx  命令:sudo apt-get install nginx

2.启动nginx  命令:sudo service ngnix start

检测nginx是否安装成功,直接打开127.0.0.1或者本地Ip,

3.进入到nginx安装目录: cd /etc/nginx/sites-available

4.修改配置文件:

进入界面后 按 a 启动编辑 ,按Esc 退出编辑 ,然后按 :wq 保存后退出  其中 :w 为保存 : q为退出  :wq! 强制保存并退出

5.重新启动nginx,应用刚修改的配置   命令:sudo nginx -s reload 

部署项目到kylin

1.在windows上发布项目

 2.将发布好的项目放到kylin的 /var/www 下面

3.打开终端 输入命令 dotnet xxxx.dll,即可

注:1.如果输入命令 dotnet xxxx.dll后,未成功启动项目,出现未找到windowsDesktop.APP,或者目标框架不一致的问题时,如果在部署环境的第六步未出现问题,那很可能是发布时候的出的错,我们可以在发布后的文件里找到 xxxx.runtimeconfig.json的文件,打开

将上图标红的地方改为Microsoft.NETCore.APP即可。 

此处参考:深入理解.NET Core的基元: deps.json, runtimeconfig.json, dll文件 - LamondLu - 博客园 (cnblogs.com)

2.在windows中我们习惯在项目中将文件路径写成“\\”,这在linux 上是不行的 要改成“/”

例如:

 改为

附加:执行到以上步骤,项目已经可以正常运行,但是需要一直开着终端,这在实际应用中肯定是行不通的。这时候我们可以使用守护进程来实现在终端关闭的情况下,项目仍可通过浏览器的方式访问:

安装Supervisor

1.输入命令:yum install python-setuptools 

2.输入命令: easy_install supervisor

3.配置Supervisor:

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改supervisord.conf文件,将文件尾部的配置 files=....改为:files=conf.d/*.conf

4.运行命令:supervisorctl reload

5.配置对 core应用 的守护。在 /etc/supervisor/conf.d/ 路径下创建一个WebApplication1.conf ,添加内容:

[program:WebApplication1]
command=dotnet WebApplication1.dll ; 运行程序的命令
directory=/usr/www/WebApplication1/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件
stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

6.运行supervisord,查看是否生效。输入命令:

supervisord -c /etc/supervisor/supervisord.conf

ps -ef | grep WebApplication1  

注:如果命令出现进程的错误,要先杀掉进程再执行一遍步骤6:

利用ps axj | grep 找到相应的守护进程,然后用kill -9 (进程号)将对应进程杀死

到此就可以在浏览器直接访问了,不在需要先在终端运行

配置Supervisor开机自启

1.在 /usr/lib/systemd/system/ 路径下新建 supervisord.service ,添加内容如下:
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

2. 执行命令:systemctl enable supervisord

3.验证是否为开机启动,输入命令:systemctl is-enabled supervisord  

至此全部完成

tips:

linux 命令

1.su   ----切换root 账户

2.sudo passwd root   ----修改root密码(用户有root权限才行)

3.cd 路径  ----进入指定路径

4.cp -r 目标目录  新目录   ----复制文件到另一个文件

5.tar -zxvf  压缩包     ----解压

6.rm -rf 路径     ----删除路径所在文件夹及其内部所有文件、文件夹

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值