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

银河麒麟运行Java项目 银河麒麟netcore开发_银河麒麟运行Java项目

 接下来说明部署的步骤:

我需要部署的项目是在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

银河麒麟运行Java项目 银河麒麟netcore开发_kylin_02

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

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的安装情况。

银河麒麟运行Java项目 银河麒麟netcore开发_.netcore_03

 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,

银河麒麟运行Java项目 银河麒麟netcore开发_nginx_04

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

4.修改配置文件:

银河麒麟运行Java项目 银河麒麟netcore开发_nginx_05

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

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

部署项目到kylin

1.在windows上发布项目

银河麒麟运行Java项目 银河麒麟netcore开发_银河麒麟运行Java项目_06

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

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

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

银河麒麟运行Java项目 银河麒麟netcore开发_kylin_07

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

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

例如:

银河麒麟运行Java项目 银河麒麟netcore开发_银河麒麟运行Java项目_08

 改为

银河麒麟运行Java项目 银河麒麟netcore开发_linux_09

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

安装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 路径     ----删除路径所在文件夹及其内部所有文件、文件夹