借助百度词条,先看看Kylin是什么:
接下来说明部署的步骤:
我需要部署的项目是在Windows上开发的,目标框架为.net core 3.1。因此我们需要先在kylin上部署项目运行所需要的环境。
1:在官网下载对应版本的SDK
根据自己的需要下载对应的二进制文件
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即可。
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 路径 ----删除路径所在文件夹及其内部所有文件、文件夹