asp.net core mysql conblogs_ASP.NET Core 快速入门(环境篇)

来自:农码一生

链接:https://www.cnblogs.com/zhaopei/p/netcore.html

阅读目录vmware虚拟机安装

CentOS7.3安装

Windows的客户端软件

.NET Core1.1安装

nginx1.12.1安装

配置防火墙

部署ASP.NET Core应用程序

nginx 配置

配置守护服务(Supervisor)

配置Supervisor开机启动

MySql5.6.37安装

安装rar压缩

常用linux命令

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

首先,入门文章园子里面已经很多了。这里再做个整理和备忘。您也可以根据目录挑着看。

(亲测多次可行,以下多图预警!)

vmware虚拟机安装

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

我这里安装的是12.1.1

163810123_1_20190617105124113

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

CentOS7.3安装

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

163810123_2_20190617105124394

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

163810123_3_20190617105124644

163810123_4_20190617105124957

163810123_5_20190617105125144

163810123_6_20190617105125660

163810123_7_20190617105125863

163810123_8_2019061710512650

163810123_9_20190617105126457

菜鸟可以选择有界面的

163810123_10_20190617105126738

163810123_11_20190617105127191

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

163810123_12_20190617105127441

Windows的客户端软件

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

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

进入CentOS,右键

163810123_13_20190617105127800

开始第一个命令。查看IP

ifconfig -a

163810123_14_20190617105127925

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

打开Xshell

163810123_15_20190617105128425

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

163810123_16_20190617105128879

.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 hwappdotnet restore

dotnet run   #运行应用程序

163810123_17_20190617105129222

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

【小白技巧】'#'是注释

shirf + insert 粘贴 (不能ctrl + c v 有点不习惯)

ctrl + insert 复制

nginx1.12.1安装

url -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 #安装

163810123_18_20190617105129566systemctl start nginx #启动nginx

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

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

163810123_19_20190617105129754

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

配置防火墙

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

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

firewall-cmd --zone=public --add-port=80/tcp --permanent #(开放80端口)

systemctl restart firewalld #(重启防火墙以使配置即时生效)

然后访问成功。

部署ASP.NET Core应用程序

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

163810123_20_2019061710513066

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

163810123_21_20190617105130441

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

163810123_22_20190617105130910

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

163810123_23_20190617105131144

右键上传

163810123_24_20190617105131800

然后命令运行cd /home/NetCoreDemo #这个目录 要输入你自己对应放的目录

dotnet netcoreDemo.dll # netcoreDemo.dll 这个对应你建的项目生成的dll

163810123_25_20190617105132332

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

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

163810123_26_20190617105132691

nginx 配置

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

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

163810123_27_2019061710513366

打开路径 /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

163810123_28_20190617105133254

文件的最后;[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  #重新加载

163810123_29_20190617105133441

然后就好了,现在关掉那个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

163810123_30_20190617105133613

把文件放服务器上。然后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

参考

http://www.cnblogs.com/ants/p/5732337.html

http://www.cnblogs.com/keepcodingforever/p/6642183.html

http://www.cnblogs.com/starof/p/4680083.html

http://www.cnblogs.com/linjiqin/archive/2013/03/24/2979897.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Centos7发布说明 环境说明: 服务器系统:CentOS 7.2.1511 相关工具:Xshel、Xftp 服务器软件软件:.netcore、nginx、supervisor 准备好发布的程序 安装.NET Core SDK for CentOS7 打开网址:https://www.microsoft.com/net/core#linuxcentos 复制如下命令,单步执行: sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin 输入 dotnet –info 来查看是否安装成功 配置Nginx 下载安装Nginx,单步执行如下命令: 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的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。 配置防火墙 命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口) 命令:systemctl restart firewalld(重启防火墙以使配置即时生效) 测试nginx是否可以访问。 配置nginx对ASP.NET Core应用的转发 修改 /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; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值