• 【Core】.NET Core 部署在Linux


    阅读目录

    一、安装.NET  Core SDK 在CentOS上

    1.右键打开命令行

    2.为了安装.NET,需要注册微软签名密钥和添加微软相关的支持。这个操作每台机器只能做一次。

    Add the dotnet product feed(其实就是向微软提交投名状,表示我这台服务器要用core),注意:先检测下是否能联网; 
    打开命令行,执行以下命令:

    sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
    
    sudo sh -c 'echo -e "[packages-microsoft-com-prod]
    name=packages-microsoft-com-prod 
    baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
    enabled=1
    gpgcheck=1
    gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

     

    3.安装 .NET Core SDK

    命令一:sudo yum update

      需要一段时间,而且会提示是否继续,输入y然后回车。

      如果遇到提示another app is currently holding the yum lock;waiting for it to exit,表示yum正在被使用,通过以下命令强制关闭:rm -f /var/run/yum.pid

    命令二:sudo yum install libunwind libicu


    命令三:sudo yum install dotnet-sdk-2.0.2

                (3.0版本的sudo yum install dotnet-sdk-3.0)

    4.使用命令 dotnet --info 查看是否安装成功

    出现下面界面则说明安装sdk成功

    二、部署网站

    1.创建文件夹

    mkdir core

    cd core

     

    2.我这里使用的是虚拟机,就直接将生成好的文件拷到core目录下,然后执行命令(dotnet 项目名称.dll)

    3.将发布的代码复制到core文件夹

     发布:dotnet NetCore2Mvc.dll

     报错:An assembly specified in the application dependencies manifest (NetCore2.0.Mvc.deps.json) was not found

    出现这个错误,是因为未安装dotnet-hosting-2.0.x (对应上图中的2.0.8)

    使用yum 安装一下:sudo yum install dotnet-hosting-2.0.8

    4.安装完成,发布成功!

    5.浏览网站

    注意:.Net Core 默认创建的项目部署完成以后,只能在本机内访问,外部通过IP是打不开的,可以通过配置Nginx实现。也可以通过修改Program.cs

     
    WebHost.CreateDefaultBuilder(args)
                    .UseKestrel()
                    .UseUrls("http://*:5000")
                    .UseContentRoot(Directory.GetCurrentDirectory())
                    .UseIISIntegration()
                    .UseStartup<Startup>()
                    .Build();
     

     UseUrls(http://*:5000即可实现通过IP访问程序。

    三、Supervisor为 dotnet 创建守护进程

    关闭shell后保持程序继续运行

    1.安装 yum install supervisor

    2.在etc文件夹下新建文件夹supervisor

    mkdir /etc/supervisor

    3.在supervisor文件夹下新建文件夹conf.d

    mkdir /etc/supervisor/conf.d

    4.生成supervisord.conf配置文件

    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    5.定位到文件夹下修改配置文件:

    cd /etc/supervisor
    
    vim  supervisord.conf

    修改前:

     修改后:

    然后按esc  键入":wq"保存退出

    6.本地新建core3web.conf

     
    [program:core3web]
    command=dotnet Core3Web.dll
    directory=/netpublish/coreweb
    environment=ASPNETCORE_ENVIRONMENT=Production
    user=root
    stopsignal=INT
    autostart=true
    autorestart=true
    startsecs=1
    stderr_logfile=/var/log/core3web.err.log
    stdout_logfile=/var/log/core3web.out.log
     

    说明:

    command= 要执行的命令
    directory= 命令执行的目录
    environment= 环境变量
    user= 进程执行的用户身份
    stopsignal=INT
    autostart= 是否自动启动
    autorestart= 是否自动重启
    startsecs= 自动重启间隔
    stderr_logfile= 标准错误日志
    stdout_logfile= 标准输出日志

    上传到自己新建的文件夹conf.d目录下

    在文件夹var/log/ 创建core3web.err.log和core3web.out.log

    7.运行supervisord,查看是否生效

    supervisord -c /etc/supervisor/supervisord.conf

    8.查看进程:

    ps -ef | grep dotnet

    9.守护进程已创建,现在关闭命令窗口也可以访问自己的网站了。

    10.界面管理

    • 10.1键入命令
    # systemctl enable supervisord.service
    # systemctl start supervisord.service
    # systemctl status supervisord.service

    • 10.2修改supervisord.conf配置文件

    默认是被注释的(分号代表注释)

     ins键 修改后  按esc  键入:wq保存退出 修改后

    • 10.3修改后重新加载配置文件
    supervisorctl reload

    • 10.4访问:9001

     如果需要用户名账号登录把注释去掉就行了

    新增了一个java项目

    新增conf文件

     
    [program:SpringBootDemo]
    command=java -jar springbootdemo-0.0.1-SNAPSHOT.jar --server.port=7890
    directory=/javapublish/springdemo1
    user=root
    stopsignal=INT
    autostart=true
    autorestart=true
    startsecs=1
    stderr_logfile=/var/log/core3web.err.log
    stdout_logfile=/var/log/core3web.out.log
     

    reload即可

  • 相关阅读:
    java 面向对象(十八):包装类的使用
    java 面向对象(十七):单元测试方法
    rxjava2学习
    多线程-wait(),notify(),notifyAll()
    多线程-Thread.join()的运用
    66. Plus One
    理解Android View的事件传递机制
    78. Subsets
    程序员学习与成长的方法(转发)
    android查询天气demo,基于mvp+kotlin+rxjava2+retrofit2
  • 原文地址:https://www.cnblogs.com/xtjatswc/p/12901662.html
Copyright © 2020-2023  润新知