【申明】:本人.NET Core小白、Linux小白、MySql小白、nginx小白。而今天要说是让你精通Linux ... 的开机与关机、nginx安装与部署、Core的Hello World ...等。

首先,入门文章园子里面已经很多了。这里再做个整理和备忘。您也可以根据目录挑着看。(亲测多次可行,以下多图预警!)

vmware虚拟机安装

vmware哪里下载?360软件管家就可以下载。然后网上找个序列号。

我这里安装的是12.1.1



安装很简单一直下一步就好了。

CentOS7.3安装

下载CentOS http://isoredirect.centos.org/centos/7/isos/x86_64/ 我们可以选择163或阿里云的节点,速度会快点。



下载完成后打开vmware准备安装















菜鸟可以选择有界面的





选好后然后开始安装,然后设置密码,然后重启就好了。

Windows的客户端软件

下载安装Xshell https://www.baidu.com/baidu?word=Xshell

下载安装WinSCP https://www.baidu.com/baidu?word=WinSCP (你也可以使用Xftp,记得选sftp,不然需要服务器支持ftp)

进入CentOS,右键



开始第一个命令。查看IP

ifconfig -a



接下来,可以全部由Xshell操作。

打开Xshell



然后输入用户名密码登录。(使用root登录)

.NET Core1.1安装

根据微软资料 https://www.microsoft.com/net/core#linuxcentos

在命令行执行:

sudo yum install libunwind libicu  #(安装libicu依赖)
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848821 #(下载sdk压缩包) 根据网速,可能快可能慢
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet #(解压缩)
sudo ln -s /opt/dotnet/dotnet /usr/local/bin #(创建链接)
dotnet new console -o hwapp   # 我们初始化一个示例Hello World应用程序 (这里稍微耗时点)
cd hwapp
dotnet restore
dotnet run #运行应用程序



看到打印的hello world证明 .net core的环境已经装好了。

【小白技巧】

  • "#"是注释
  • shirf + insert 粘贴 (不能ctrl + c v 有点不习惯)
  • ctrl + insert 复制

nginx1.12.1安装

curl -o  nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx.rpm
yum install nginx #安装

systemctl start nginx #启动nginx
systemctl enable nginx #设置nginx的开机启动

然后登录 CentOs系统 打开浏览器 输入 :192.168.233.129 (之前查到的IP)



看到这个页面就代表安装成功了。

配置防火墙

如果你在物理机的浏览器访问,你会发现访问不了。

那是因为CentOs的防火墙拦截了,我们打开端口。

firewall-cmd --zone=public --add-port=80/tcp --permanent #(开放80端口)
systemctl restart firewalld #(重启防火墙以使配置即时生效)

然后访问成功。

部署ASP.NET Core应用程序

打开VS2017 新建一个.net core 项目



右键发布(发布之前最好先在本地跑下看正常不)



然后打开我们的WinSCP(前面下载的)



点击登录,然后就可以看到CentOs系统的文件目录了。然后随便建个文件夹,准备放我们发布发好的程序。



右键上传



然后命令运行

cd /home/NetCoreDemo #这个目录 要输入你自己对应放的目录
dotnet netcoreDemo.dll # netcoreDemo.dll 这个对应你建的项目生成的dll



看到了5000 端口的一个网址,证明部署好了。

然后在虚拟机里面访问 http://localhost:5000 ,ok。

nginx 配置

前面我们只说了nginx,并没有说是干嘛的。nginx的作用有点先iis,是个web服务器。做转发。

我们发现http://localhost:5000 可以访问。但是通过ip却不能访问。那么我们现在就可以通过80访问nginx,然后nginx再帮我们访问5000。



打开路径 /etc/nginx/conf.d

编辑default.conf 文件内容替换为

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;
}
}

将nginx添加至SELinux的白名单,否则会报502错误。

nginx -s reload #使其即时生效
【注意】然后这里访问下 http://192.168.233.130/ (对应你自己的centos ip,这一步好重要。应该是要先主动触发这个502错误吧。)
yum install policycoreutils-python #(选y)
cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
semodule -i mynginx.pp SELinux 对nginx访问目录的影响
https://www.cnblogs.com/mywebnumber/p/5572984.html

然后我们就可以在物理机上通过ip访问了(不用带端口了,直接80 然后 nginx 转到了5000)。

配置守护服务(Supervisor)

yum install python-setuptools
easy_install supervisor #安装Supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf #配置Supervisor



文件的最后

;[include]
;files = relative/directory/*.ini

改成(【注意】去掉;且不能有空格)

[include]
files = conf.d/*.conf

进入目录 /etc/supervisor/ 新建 conf.d文件夹,conf.d文件夹下新建 netcoreDemo.conf文件

内容(【注意】看 第二行 第三行的 注释,根据实际名字填入

[program:netcoreDemo]
command=dotnet netcoreDemo.dll ; (注意)运行程序的命令
directory= /home/NetCoreDemo/ ; (注意 注意)对应的你的项目的存放目录,这个地方好多初学者搞错!!!
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件
stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep netcoreDemo #【注意】netcoreDemo是上面 program:netcoreDemo 的命名
supervisorctl reload #重新加载



然后就好了,现在关掉那个5000界面也可以访问。

配置Supervisor开机启动

打开目录 /usr/lib/systemd/system/ 新建文件 supervisord.service

内容:

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon [Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

执行命令:

systemctl enable supervisord
systemctl is-enabled supervisord #来验证是否为开机启动 systemctl stop supervisord #关闭
systemctl disable supervisord #禁用

到此,完工。现在重新电脑什么都不用管,直接可以访问部署好的网站。

MySql5.6.37安装

http://www.cnblogs.com/starof/p/4680083.html (我用的方法二)

安装rar压缩

下载 http://www.rarsoft.com/download.htm



把文件放服务器上。然后cd到这个目录执行

tar -zxvf rarlinux-x64-5.4.0.tar.gz # rarlinux-x64-5.4.0.tar.gz是你下载的文件名
cd rar
make
rar #安装

安装好了后我们就可以打命令解压文件了

cd #跳到压缩文件目录
rar x ceshi.rar #解压到当前文件夹 ceshi.rar是压缩文件名
rar a abc.rar ceshi #压缩文件夹 到 abc.rar

在CentOS中安装完rar命令,会自动安装zip命令

cd /home #进入/home目录
zip -r mydata.zip mydata #把/home目录下面的mydata目录压缩为mydata.zip
unzip mydata.zip -d mydatabak #把/home目录下面的mydata.zip解压到mydatabak目录里面
zip -r abc123.zip abc 123.txt #把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
unzip wwwroot.zip #把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip abc\*.zip #把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
unzip -v wwwroot.zip #查看把/home目录下面的wwwroot.zip里面的内容
unzip -t wwwroot.zip #验证/home目录下面的wwwroot.zip是否完整
unzip -j wwwroot.zip #把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录

常用linux命令

cd                 #目录跳转
cd / #回到上一个目录
ls #查看目录下的文件
df -h #查看文件使用情况
mkdir #创建文件夹文件夹
vi # 编辑文件
:wq! #强制保存文件,并退出vi ifconfig -a #查看ip
free #查看系统资源使用情况 http://blog.csdn.net/zhongluhuaok/article/details/52804187 firewall-cmd --zone=public --add-port=80/tcp --permanent #开放80端口,也可以是其他端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 关闭端口
systemctl restart firewalld #重启防火墙,使其生效 service mysqld restart #重启mysql
nginx -s reload # nginx 生效
reboot # 重启系统 supervisorctl start program_name #启动某个进程(program_name=你配置中写的程序名称)
supervisorctl stop program_name #停止某一进程 (program_name=你配置中写的程序名称)
supervisorctl reload #重新启动配置中的所有程序
supervisorctl stop all #停止全部进程
supervisorctl update #更新新的配置到supervisord
supervisorctl restart program_name #重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl #查看正在守候的进程
http://blog.csdn.net/shudaqi2010/article/details/51153961 clear #刷新终端屏幕 (或者 ctrl + l)
exit #退出
shift + insert #粘贴
ctrl + insert #复制

补充

centos上升级 .net core 2.0 需要先执行官网命令

curl -sSL -o dotnet.tar.gz https://aka.ms/dotnet-sdk-2.0.0-linux-x64
mkdir -p ~/dotnet && tar zxf dotnet.tar.gz -C ~/dotnet
export PATH=$PATH:$HOME/dotnet

然后再删除原有文件夹

rm -rf /opt/dotnet                              #删除原有文件夹
rm -rf /usr/local/bin/dotnet #删除原来定义的dotnet命令
sudo ln -s /root/dotnet/dotnet /usr/local/bin #重新定义dotnet命令

且,项目程序也要升级到2.0,不然dotnet dll不能成功。

 

结束

这几天给我的感受就是,CentOS带我进入了一个更开阔的世界!!!开启我们的.net core吧,你会觉得很好玩的。

打算重写Hi-Blogs系统

访问地址:http://haojima.net (刚入手做了一个留言板、聊天室快去体验下吧。.net core 跑在阿里云linux上的。)

开源地址:https://github.com/zhaopeiym/Hi-Blogs

 

参考

ASP.NET Core 快速入门(环境篇)的更多相关文章

  1. ASP.NET Core快速入门--学习笔记系列文章索引目录

    课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 抓住国庆假期的尾巴完成了此系列课程的学习笔记输出! ASP.NET Core快 ...

  2. 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2  任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...

  3. 【笔记目录1】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 1 2 下一页  任务50:Identity MVC:DbContextSeed初始化 GASA 2019-03-02 14:09 阅读:16 ...

  4. ASP.NET Core 快速入门(Razor Pages + Entity Framework Core)

    引子 自从 2009 年开始在博客园写文章,这是目前我写的最长的一篇文章了. 前前后后,我总共花了 5 天的时间,每天超过 3 小时不间断写作和代码调试.总共有 8 篇文章,每篇 5~6 个小结,总截 ...

  5. 【转】ASP.NET Core 快速入门(环境篇)

    原文链接:http://www.cnblogs.com/zhaopei/p/netcore.html [申明]:本人.NET Core小白.Linux小白.MySql小白.nginx小白.而今天要说是 ...

  6. ASP.NET Core 快速入门【第二弹-实战篇】

    上篇讲了asp.net core在linux上的环境部署.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).nginx多站点部 ...

  7. ASP.NET Core 快速入门(实战篇)

    上篇讲了<asp.net core在linux上的环境部署>.今天我们将做几个小玩意实战一下.用到的技术和工具有mysql.websocket.AngleSharp(爬虫html解析).n ...

  8. 【ASP.NET Core快速入门】(一)环境安装

    下载.NET Core SDK 下载地址:https://www.microsoft.com/net/download/windows https://www.microsoft.com/net/le ...

  9. ASP.NET Core快速入门(第3章:依赖注入)--学习笔记

    课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务16:介绍 1.依赖注入概念详解 从UML和软件建模来理解 从单元测试来理 ...

随机推荐

  1. js 数据加载loading封装

    <!-- 模态框(Modal) --> <div class="modal fade" id="qst_loading" tabindex=& ...

  2. SSM-Spring-22:Spring+Mybatis+JavaWeb的整合

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 众所周知,框架Spring来整合别的框架,但是Mybatis出现的晚,Spring就没有给他提供支持,那怎么办 ...

  3. 【手记】ASP.NET提示“未能创建类型”处理

    我是在本机启动IIS Express调试一个ashx(一般处理程序)时遇到这个报错,网上的说法普遍有这么几种: 把bbb.ashx中的Class="aaa.bbb" 改为Class ...

  4. Python爬虫利器五之Selenium的用法

    1.简介 Selenium 是什么?一句话,自动化测试工具.它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的 ...

  5. python反编译工具

    开发类在线工具:https://tool.lu/一个反编译网站:https://tool.lu/pyc/ 一看这个标题,就是搞坏事用的, 用 java 写程序多了,很习惯用反编译工具了,而且玩java ...

  6. in_flight_pqueue.go

    // right child         }         if (*pq)[j].pri >= (*pq)[i].pri {             break         }    ...

  7. BZOJ_4726_[POI2017]Sabota?_树形DP

    BZOJ_4726_[POI2017]Sabota?_树形DP Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属 ...

  8. 权限系统与RBAC模型概述[绝对经典]

    0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋.当时google了一些权限管理的资料,从中了解到早就有了RBA ...

  9. Python数据结构应用2——Queue

    Reference: Problem Solving with Algorithms and Data Structures, Release 3.0 队列 Queue 建立 class Queue: ...

  10. 第十四章——循环神经网络(Recurrent Neural Networks)(第一部分)

    由于本章过长,分为两个部分,这是第一部分. 这几年提到RNN,一般指Recurrent Neural Networks,至于翻译成循环神经网络还是递归神经网络都可以.wiki上面把Recurrent ...