• 银河麒麟V10安装ASP.NET Core教程


    银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主机系统可靠性、安全性、性能、扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全、云原生支持、国产平台深入优化、高性能、易管理的新一代自主服务器操作系统;同源支持飞腾、龙芯、申威、兆芯、海光、鲲鹏等自主CPU及x86平台;可支撑构建大型数据中心服务器高可用集群、负载均衡集群、分布式集群文件系统、虚拟化应用和容器云平台等,可部署在物理服务器和虚拟化环境、私有云、公有云和混合云环境;应用于政府、国防、金融、教育、财税、公安、审计、交通、医疗、制造等领域。--来自官网介绍(http://www.kylinos.cn/scheme/server/1.html)

    在产品试用页面填写完申请后,可以下载试用版银河麒麟服务器版操作系统(试用期一年,试用地址http://www.kylinos.cn/support/trial.html)。

    本文章采用的是x86架构的银河麒麟操作系统。

    安装完成后,银河麒麟自带GUI图形桌面

    安装时设置好密码后,会自动启动SSH管理,使用SSH管理工具即可远程连接管理。

    在根目录下建立一个文件夹upload,把以下文件上传到此目录

    1、aspnetcore-runtime-3.1.11-linux-x64.tar.gz(https://dotnet.microsoft.com/download/dotnet-core/3.1)

     或使用安装命令在线安装

    1. rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
    2. yum install aspnetcore-runtime-3.1

    2、setuptools-53.0.0.tar.gz(https://pypi.org/project/setuptools/)

    3、supervisor-4.2.1.tar.gz(https://pypi.org/project/supervisor/#files)

    4、libgdiplus-6.0.5.tar.gz(http://download.mono-project.com/sources/libgdiplus/libgdiplus0-6.0.4.tar.gz ,如果直接使用yum按照,需要先rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm安装这个源,然后在yum install libgdiplus)

    我们可以直接用CentOS的包管理工具yum来进行安装,需要注意的是银河麒麟不支持第三方的软件源(国内阿里、163等镜像源都不可用)

    1. yum install autoconf automake libtool
    2. yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel

    进入到libgdiplus解压缩后的目录,然后执行(如果离线安装)

    1. ./autogen.sh --prefix=/usr/local/lib
    2. ./configure --prefix=/usr/local/lib
    3. make
    4. make install
    5. ldconfig

    安装完成后需要在/etc/ld.so.conf.d下建立一个文件(如local.conf),内容填写上/usr/local/lib(此目录请以当时make install时输出的最终安装路径为准),然后用root权限执行ldconfig。这样调用相应的so文件就会在/usr/local/lib中搜索了。

    解压缩setuptools-53.0.0.tar.gz和supervisor-4.2.1.tar.gz

    先安装setuptools-53.0.0(需要Python3.6支持,银河麒麟默认是3.7可以直接安装) 

    1. cd setuptools-53.0.0
    2. python3 setup.py install

    然后安装supervisor-4.2.1

    1. cd ../supervisor-4.2.1/
    2. python3 setup.py install

    安装完成后,进入到后/usr/lib64/python3.7目录,执行

    echo_supervisord_conf  > /etc/supervisord.conf

    就会在/etc/目录下生成supervisord.conf配置文件。然后建立一个目录/var/supervisord,用来保存supervisord运行时生成的三个文件保存路径,并在此目录中保存要守护的程序的配置文件(也可以另外建立一个目录)

    然后分别执行 

    1. touch /var/supervisord/supervisor.sock
    2. touch /var/supervisord/supervisor.log
    3. touch /var/supervisord/supervisor.pid
    4. chmod 777 /var/supervisord/supervisor.sock
    5. chmod 777 /var/supervisord/supervisor.log
    6. chmod 777 /var/supervisord/supervisor.pid

    然后vim /etc/supervisord.conf 把配置文件中的supervisor.sock、supervisor.log、supervisor.pid三个文件的保存位置改为刚建立的三个文件位置

     在文件最后打开守护程序配置所在目录

    完成后保存退出。然后建立一个Supervisor的启动脚本(vim /lib/systemd/system/supervisord.service)然后填入以下内容保存退出。

    1. [Unit]
    2. Description=Process Monitoring and Control Daemon
    3. After=rc-local.service
    4. [Service]
    5. Type=forking
    6. ExecStart=supervisord -c /etc/supervisord.conf
    7. SysVStartPriority=99
    8. [Install]
    9. WantedBy=multi-user.target

    然后执行systemctl enable supervisord.service来设置开机自动启动服务,接着重启服务器,然后我们运行ps -ef |grep supervisord即可看到supervisor已经开机自动启动

    接着我们按照微软官网上的教程安装ASP.NET Core3.1运行时(本次上传路径在/upload下,离线安装方式) 

    1. mkdir -p "$HOME/dotnet" && tar zxf aspnetcore-runtime-3.1.11-linux-x64.tar.gz -C "$HOME/dotnet"
    2. export DOTNET_ROOT=$HOME/dotnet
    3. export PATH=$PATH:$HOME/dotnet

    或者直接用命令安装

    1. sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
    2. sudo yum -y install aspnetcore-runtime-3.1

    接着我们运行dotnet --version就可以看到当前ASP.NET Core的版本是3.1

    此时我们就可以把我们编译后的网站上传到服务器上(本次使用的目录是/usr/src/wwww/whitelist),然后在/var/supervisord/目录下建一个网站的ini配置文件,内容如下

    1. [program:bmd.Site]
    2. command=dotnet WhiteList.dll
    3. directory=/usr/src/wwww/whitelist
    4. environment=ASPNETCORE__ENVIRONMENT=Production
    5. user=root
    6. stopsignal=INT
    7. autostart=true
    8. autorestart=true
    9. startsecs=3
    10. stderr_logfile=/var/log/whitelist.err.log
    11. stdout_logfile=/var/log/whitelist.out.log

    随后我们运行supervisorctl reload或者systemctl restart supervisord.service重新启动supervisord,

    因为我们使用的是Kestrel来作为web服务,所以我们需要把5000端口对外开放

    1. firewall-cmd --zone=public --add-port=5000/tcp --permanent 
    2. firewall-cmd --reload

    )同时需要在appsettings.json中启用配置

    1. "Kestrel": {
    2. "EndPoints": {
    3. "Http": {
    4. "Url": "http://0.0.0.0:5000"
    5. }
    6. }
    7. },

    随后我们就可以看到我们的网站已经运行成功。

  • 相关阅读:
    离线数仓搭架_01_数仓概念与项目框架说明
    TS类中初始化属性语法糖
    虚函数表与动态绑定
    布朗大学发现GPT-4存在新问题,可通过非常见语言绕过限制
    Effective Java学习笔记---------异常
    STC 51单片机57——矩阵键盘 基本原理演示
    Java项目:JSP民宿预订网站信息管理平台
    【云IDE】尝试着操作了云IDE感觉蛮好用的操作步骤总结了一下来看看,提提建议
    iptables学习
    springboot校园师生出入登记系统java ssm
  • 原文地址:https://blog.csdn.net/5653325/article/details/125893726