Linux系统(ubuntu)部署Asp.Net Core网站

一、前言

  亲自动手尝试部署.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

时间: 2024-07-30 15:58:26

Linux系统(ubuntu)部署Asp.Net Core网站的相关文章

Linux下自动化部署ASP.NET CORE 3.1(Docker+Jenkins+Nginx)

1.先配置好Docker阿里云加速,可以使用阿里云容器服务 (可自己在阿里云申请,要不然安装东西直接很慢)注意:https://XXXX.mirror.aliyuncs.com为阿里云加速服务分配地址 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://XXXX.mirror.aliyuncs.com"] }

LINUX 下Jexus部署ASP.NET Core WebApi

服务器:LINUX  ubuntu16.04 开发软件:VS2015 Update3 dotnet sdk: DotNetCore.1.0.0-VS2015Tools.Preview2 1.创建一个.NetCore的webApi项目. 随便写的一个demo,所以这里我就不在云中托管了.点击确定,新建的webApi结构如下: 2.打开project.json "Microsoft.NETCore.App": { "version": "1.0.1"

在CentOS上部署Asp.net Core应用程序

作为一个Linux新手,许多人向我鼓吹说CentOS多么强大,于是我就开始把一个演示程序发布到CentOS,想试一下它到底有多强大.在此之前,我将同样的程序已经成功发布到了Ubuntu,我觉得,既然已经有了前一次的成功经验,不论CentOS还是Ubuntu都是Linux,道理应该差不多吧.但事实证明,还是有些差异的,某些在CentOS上频出的问题在Ubuntu上却没有,所以我的感觉是Ubuntu部署Asp.net Core程序更容易些. 过程很不顺利,但最终经过一天摸索已摸清个七八成,应用总算能

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

上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足的是需要借助第三方软件nssm来进行,那么有没有更好并且优雅的方式来进行ASP.NET Core网站的Windows服务方式部署呢?答案是肯定的! 作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10380887.html 今天这篇文章我会利用番茄工作法来

【asp.net】Linux 部署 asp.net core 项目

Net sdk官网LINUX配置地址:https://www.microsoft.com/net/core#windows 参考:http://www.07net01.com/2016/08/1638058.html http://www.cnblogs.com/calvinK/p/5628298.html http://www.mamicode.com/info-detail-1535706.html http://www.cnblogs.com/ants/p/5732337.html 1.项

ASP.NET Core 网站发布到Linux服务器(转)

出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.NET平台被认为只适合开发企业内部应用系统. 2016年6月27日,微软正式发布.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,通吃 Windows.OS X和Linux三大操作系统..

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

关于如何在Linux中添加ASP.NET Core运行时环境请参考我的上一篇文章,本文章将不再做赘述. 本文章运行环境如下:  (1) 安装独立版Jexus 本教程安装的是独立版的Jexus,独立版的Jexus自带Mono,使用的是Mono的稳定版本4.8.安装 Jexus 直接使用一下命令即可(需要在root身份下执行): curl https://jexus.org/release/x64/install.sh|sh 安装成功后会提示:OK, Jexus has been installed

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

在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Apache(阿帕奇)中.    很幸运能够和大家一起学习和探讨ASP.NET Core 本文章运行环境如下: (1)安装Apache web服务器 运行命令行如下: sudo yum update -y   //更新仓库 sudo yum -y install httpd mod_ssl   //安装

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

长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.NET平台被认为只适合开发企业内部应用系统. 2016年6月27日,微软正式发布.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,通吃 Windows.OS X和Linux三大操作系统..NET Core作为新一代跨平台.开源的.NET平台备受瞩目