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

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

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

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

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

按管理,我们先安装libgdiplus,因为网站登录需要显示验证码,显示验证码调用System.Draw时需要libgdiplus支持。

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

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

安装完成后需要在/etc/ld.so.conf.d下建立一个文件(如local.conf),内容填写上/usr/local/lib,然后用root权限执行ldconfig。这样调用相应的so文件就会在/usr/local/lib中搜索了。

在根目录下建立一个文件夹upload,把

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

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

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

libgdiplus-6.0.5.tar.gz(http://download.mono-project.com/sources/libgdiplus/libgdiplus0-6.0.4.tar.gz)

上传到此目录

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

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

cd setuptools-53.0.0
python3 setup.py install

然后安装supervisor-4.2.1

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

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

echo_supervisord_conf  > /etc/supervisord.conf

就会在/etc/目录下生成supervisord.conf配置文件。然后建立一个目录/var/supervisord,用来保存supervisord运行时生成的三个文件保存路径,建立一个/var/supervisord.d目录,用来保存要守护的程序的配置文件

然后分别执行

touch /var/supervisord/supervisor.sock
touch /var/supervisord/supervisor.log
touch /var/supervisord/supervisor.pid
chmod 777 /var/supervisord/supervisor.sock
chmod 777 /var/supervisord/supervisor.log
chmod 777 /var/supervisord/supervisor.pid

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

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

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

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service [Service]
Type=forking
ExecStart=supervisord -c /etc/supervisord.conf
SysVStartPriority=99 [Install]
WantedBy=multi-user.target

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

接着我们安装libgdiplus,进入到libgdiplus解压缩后的目录,然后执行

./autogen.sh --prefix=/usr/local/lib
./configure --prefix=/usr/local/lib
make
make install
ldconfig

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

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

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

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

[program:bmd.Site]
command=dotnet WhiteList.dll
directory=/usr/src/wwww/whitelist
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/var/log/whitelist.err.log
stdout_logfile=/var/log/whitelist.out.log

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

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

firewall-cmd --zone=public --add-port=5000/tcp --permanent

firewall-cmd --reload

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

"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://0.0.0.0:5000"
}
}
},

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

银河麒麟V10安装ASP.NET Core并配置Supervisor让网站开机自动运行的更多相关文章

  1. .NET 6应用程序适配国产银河麒麟V10系统随记

    最近想在麒麟系统上运行.NET 6程序,经过一番折腾最终完成了,简单记录一下. 目标系统: CPU: aarch64架构(ARM64) 操作系统:银河麒麟V10高级服务器系统 银河麒麟V10系统(以下 ...

  2. 在Linux安装ASP.NET Core运行时环境

    我使用的是Centos7 ,其它的Linux请参考微软文档   微软官方介绍文档:                                https://www.microsoft.com/n ...

  3. 在Linux安装ASP.Net Core的运行时(Runtime)

    在部署的时候,如果您不想在您的Linux服务器上安装.Net Core SDK,您可以只安装Runtime,接下来我们看看该如何安装运行时Runtime. 下载运行时文件 下载页面:https://w ...

  4. CentOS 安装Asp.net Core & FTP服务

    网络设置 确认是否成功连网: ping baidu.com 如果无法上网请检查以下设置 ip link show vim /etc/sysconfig/network-scripts/ipcfg-(看 ...

  5. ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 配置 上一章节我们简单介绍了下 Id ...

  6. ASP.NET Core的配置(5):配置的同步[设计篇]

    本节所谓的"配置同步"主要体现在两个方面:其一,如何监控配置源并在其变化的时候自动加载其数据,其目的是让应用中通过Configuration对象承载的配置与配置源的数据同步:其二. ...

  7. ASP.NET Core的配置(5):配置的同步[ 实例篇]

    ConfigurationBuilder在生成以Configuration对象的时候会利用注册其中的ConfigurationProvider加载原始的配置数据,那么一旦配置源中的数据发生变化,应用程 ...

  8. ASP.NET Core的配置(4):多样性的配置来源[下篇]

    我们在上篇和中篇对配置模型中默认提供的各种ConfigurationProvider进行了深入详尽的介绍,如果它们依然不能满足项目中的配置需求,我们可以还可以通过自定义ConfigurationPro ...

  9. ASP.NET Core的配置(4):多样性的配置来源[中篇]

    我们在本篇文章中会介绍三种针对物理文件的ConfiguationProvider,它们分别是针对JSON文件的JsonConfiguationProvider,针对XML文件的XmlConfiguat ...

随机推荐

  1. 干电池升压5V,功耗10uA

    PW5100干电池升压5V芯片 输出电容: 所以为了减小输出的纹波,需要比较大的输出电容值.但是输出电容过大,就会使得系统的 反应时间过慢,成本也会增加.所以建议使用一个 22uF 的电容,或者两个 ...

  2. django 组件 自定义过滤器 自定义标签 静态文件配置

    组件 将一些功能标签写在一个html文件里,这个文件作为一个组件,如果那个文件需要就直接拿过来使用即可: 这是title.html文件,写了一个导航栏,作为一个公用的组件 <div style= ...

  3. .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)

    在前两篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) 我们对. ...

  4. pywin32 pywin32 docx文档转html页面 word doc docx 提取文字 图片 html 结构

    https://blog.csdn.net/X21214054/article/details/78873338# python docx文档转html页面 - 程序猿tx - 博客园 https:/ ...

  5. memory ordering 内存排序

    Memory ordering - Wikipedia https://en.wikipedia.org/wiki/Memory_ordering https://zh.wikipedia.org/w ...

  6. Java 字符串简介

    从概念上讲,Java 字符串就是 Unicode 字符序列.Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个预定义类,很自然地叫做 String.每个用双引号括起来的字符串都是 ...

  7. python join()方法的使用,可以应用到tcp压测发送指定数据长度的应用

    Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串.其中,序列中的元素应是字符串类型. 学习join()方法主要是为了配合随机数的使用,生产某个指定位数的随机数,在t ...

  8. (三)集成 JavaMail ,实现异步发送邮件

    集成 JavaMail ,实现异步发送邮件 1.JavaMail的核心API 1.1 API功能图解 1.2 API说明 1.2.1 Message 类: 1.2.2 Transport 类 1.2. ...

  9. 【Oracle】SQL/92 执行多个表的连接

    内连接 外连接 自连接 交叉连接 1.内连接 表名 INNER JOIN 表名 ON 条件 等价于: FROM 表名, 表名 WHERE 条件 SELECT p.name, pt.name, pt.p ...

  10. DEDECMS:解决BMP、jpeg图片或MP4视频无法上传和在后台无法显示

    一.BMP图片无法上传解决方法: 1.修改配置文件: 在include-->dialog的文件夹下, select_images_post.php--> 把 $sparr = Array( ...