一、前言

  亲自动手尝试部署.Net Core在Linux,看了不少文章,感觉是很简单,但是做下去也会有很多问题,今天就写个文章记录下来。

二、环境安装

   虚拟机(VMware),在网上找就行。

  地址:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-12.5.6-5528349.exe ,直接下载就行。

  Linux版本(ubuntu),这里选择了ubuntu系统,也是比较常用的,大家可以去找一些国内的下载源,比如 阿里的,网易的,下载速度是很快的。

  阿里的:http://mirrors.aliyun.com/  网易的 http://mirrors.163.com/。

  以阿里的举个栗子,拉到最下边,选择ubuntu-releases 点击进去

  

   进去之后这里有很多版本,我选择的是16.04,点击进入

  

  选择如图所示的,下载就可以了。desktop是含有桌面版本的,使用起来比较方便,server版本是不带桌面的(当然选带桌面的啊,不然心里慌,看到黑屏还以为电脑坏了呢。[捂脸])

  

  下载好安装就行了。虚拟机怎么安装在这里就不说了,不会的去百度一下。

三、安装DotNet Sdk

  3.1 登录系统。

  开机界面如下。输入密码登录进去之后,是这个界面(前几天还有小伙伴说我用的是mac,给我吓一跳,不得不说,还真的像)。

  

 

  

  3.2 使用terminal终端。

  在windows中叫cmd 命令行,就那个黑白屏。点击最上边一个图标,搜索ter ,然后点击拖拽出来到右边的栏里。方便我们以后点击随时使用。

  

  3.3 下载dotnet sdk。

  地址:https://www.microsoft.com/net/download/linux  dotnet sdk  是为了给开发人员开发时使用的,里边包括了运行时,严格来说,在服务器上部署网站不做开发,只用安装一个运行时就行了。这里不讲究那么多。

  

   3.4 安装到linux系统里

  下载好后把下边这个东西拖拽到你的系统里,记得改个名字,比如就叫dotnet.tar.gz。tar.gz 是linux下的一种压缩包格式。先放到home文件夹下。

  

  

   右键点击出现菜单,点open terminal ,准备开始写命令。

   

   执行命令:mkdir -p $HOME/dotnet && tar zxf dotnet.tar.gz -C $HOME/dotnet  (这一步就是在当前文件夹下 创建一个dotnet的文件下,并把dotnet.tar.gz解压到里边)

   执行命令:export PATH=$PATH:$HOME/dotnet   (这一步就是设置环境变量,$HOME相当于你的home目录)

   环境变量对java开发者来说并不陌生,然而好多人也只是知道需要配这个东西,但是为什么就不知道了。

   科普一下环境变量:就是当你执行一个命令的时候,如果当前目录没有,它就会去当前的环境变量里去找(环境变量里存放的是一系列的目录,倘若在这些目录里找到了就可以执行),所以,为了我们在每个目录任何路径下都可以执行某个命令,就需要配置一下。

   

   注意:linux 为每个用户创建了一个文件夹,默认/home/[username]下边,当前用户就是我自己songlin 所以点击home就直接显示了我的文件夹。下边是我自己相对于整个系统的目录,

   这一点如果不懂可以下去之后学习,今天不做介绍。

   

  3.6 检查命令

  运行dotnet命令,出现以下情况,说明安装成功。但是这种方式设置的临时的,当你关闭terminal的时候就没有了。

  

  如果要设置永久有效的,需要执行命令 sudo vim /etc/profile ,即用vim打开这个文件,在这个文件最下边加上一行 export PATH=$HOME/dotnet:$PATH 保存。

  设置之后 重启一下就行了。因为这个东西是开机就启动的,执行了这一句话就相当于事先把环境变量设置好了。

   

  接下来发布我们的站点,并把发布的网站复制到服务器的某个目录下边,我复制到了home/wwwroot/webapi下边,如下所示:

  

  3.7 安装nginx配置代理ip访问

   3.7.1 安装:sudo apt-get install nginx
    3.7.2 然后配置nginx的代理转发,修改/etc/nginx/sites-available/default,修改内容如下,这一步需要root权限修改,注意是全部覆盖,直接添加可能会出问题。

server {listen 80;location / {proxy_pass http://localhost:5000;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection keep-alive;proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}
}

     3.7.3 重新加载

sudo nginx -t  //检查配置是否正确
sudo nginx -s reload //重新加载

  这样就能实现ip访问了。打开你的虚拟机,使用ifconfig 查看ip地址,然后浏览器输入ip地址就可以访问了。

  3.8 安装Supervisor

  3.8.1 安装:sudo apt-get install supervisor

   3.8.2 配置:

  安装完成之后,在 /ect/supervisor/confg.d/ 目录下新建一个配置文件,取名为 TestCore.conf (我取的是当前项目的名称)

使用命令新建文件: sodu touch testcore.conf

打开testcore.conf,写入如下命令(如果没有权限,请参照上面的方法):  

[program:testcore]
command=dotnet WebApplication.dll #要执行的命令
directory=/home/songlin/wwwroot/webapi #命令执行的目录
environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
user=www-data #进程执行的用户身份
stopsignal=INT
autostart=true #是否自动启动
autorestart=true #是否自动重启
startsecs=1 #自动重启间隔
stderr_logfile=/var/log/testcore.err.log #标准错误日志
stdout_logfile=/var/log/testcore.out.log #标准输出日志

注意:#后边的内容要去掉,这里是注释,但是supervisor不识别,而且直接输dotnet命令还找不到,现在暂时用下边的配置,直接输入命令的全路径 /home/songlin/dotnet/dotnet,我环境变量之前是配过的,这个问题我也不知道为什么。

[program:testcore]
command=/home/songlin/dotnet/dotnet WebApplication1.dll
directory=/home/songlin/wwwroot/webapi
environment=ASPNETCORE__ENVIRONMENT=Production
user=www-data
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/testcore.err.log
stdout_logfile=/var/log/testcore.out.log 

  3.8.3 重启

sudo service supervisor stop
sudo service supervisor start

之后重启虚拟机就行了,然后直接用ip访问我们的站点就可以了。

 四、总结  磕磕绊绊总算是部署完成了,感觉还是有点问题,不过总算运行起来,可能有很多配置还没配好,以后再说吧,用到的时候再研究,这只是练练手。    

转载于:https://www.cnblogs.com/flaming/p/8149973.html

Linux系统(ubuntu)部署Asp.Net Core网站相关推荐

  1. Linux系统之部署iWebShop电子商城网站

    Linux系统之部署iWebShop电子商城网站 一.iWebShop介绍 二.检查本地环境 1.检查系统版本 2.检查系统内核版本 三.部署apache环境 1.检查本地yum仓库 2.安装apac ...

  2. 如何在宝塔面板启用 ASP.NET CORE 网站并自动申请 HTTPS 证书

    要想在 Linux 上部署 ASP.NET CORE 网站,除了使用"宇内流云"大神的 Jexus 之外就是使用 Nginx 对 ASP.NET CORE 网站进行反向代理. 常规 ...

  3. Azure 上使用 Windows Server Core 运行 ASP.NET Core 网站

    点击上方蓝字关注"汪宇杰博客" 导语 微软智慧云 Azure 上虽然早就有 App Service 这种完全托管的 PaaS 服务可以让我们分分钟建网站.但是不自己配一下环境,就不 ...

  4. 如何优雅的利用Windows服务来部署ASP.NET Core程序

    上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足 ...

  5. 在Linux环境下使用Apache部署ASP.NET Core

    在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...

  6. ASP.NET Core 网站发布到Linux服务器

    长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...

  7. Linux系统上部署dotnet core

    Linux系统上部署dotnet core 主要步骤如下: 安装linux Linux下安装dotnet core环境 Linux下部署dotnet core系统 主要步骤如下: 因我公司需要,做一个 ...

  8. ASP.NET Core网站使用Nginx布署Linux上配置和发布及相关代码

    本文主要介绍使用ASP.NET Core开发的网站,运行布署在Linux上的方法,包括.NET Core SDK找安装,项目的发布和网站运行及开机自动启动及Nginx相关配置方法 . 原文地址:ASP ...

  9. 从零实操基于WSL2 Docker部署Asp.Net Core项目

    前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...

最新文章

  1. Xshell发送命令到全部会话
  2. 这50位青年科学家,腾讯每人给300万
  3. python 3读取文件-Python3 yaml文件读写操作
  4. jquery文件的引入
  5. 网络安全对现在乃至以后,对人们的安全有着重大的保障
  6. 动画-animation
  7. python中的流程控制
  8. Java程序员晋升之路:“Java高级核心知识全面解析
  9. 开源linux 二进制工具,又一款开源好物:逐字节分析的二进制数据分析工具bitinsight...
  10. mschart走势图 vc_[VC] 解决MSChart闪烁的问题
  11. mysql sql注入工具下载_超级SQL注入工具【SSQLInjection】
  12. 775针服务器cpu性能排行,775针cpu排行榜说明
  13. 计算机专业公务员三不限,公务员:三不限岗位是大坑,这3类专业最受欢迎,选对才是硬道理...
  14. Docker容器无法解析域名
  15. matlab 画柱状图和误差棒,小白1分钟绘图:带误差棒的柱状图
  16. linux uac 设备,USB Audio Class (UAC) 分析
  17. SPEC CPU简介和使用
  18. 用openpyxl读取文件夹中excel到数据库
  19. Mysql compact行格式
  20. 【算法分析】Lucas–Kanade光流算法

热门文章

  1. swal 美化弹出框
  2. 学海记录项目测试报告
  3. 在windows环境下配置mongoDB集群
  4. App_Shell模型
  5. 文档翻译-免费的文档翻译软件批量
  6. 硬件设计和开发24部笔记
  7. 宁波三中机器人_宁波三中三个男生做了个机器人 获奥林匹克中国总决赛冠军...
  8. 1.TomCat配置以及JavaWeb开发的目录结构
  9. shade学习过程2——shader和渲染管线
  10. 【新书推荐】【2018.06】机载雷达信号处理最新进展(第一版)