全球首发!.Net Core+MySql Linux下跨平台

      作为一种全新的开源和跨平台的开发平台,.NET Core历经两年多的开发,终于在于2016年6月27日针对所有主流服务器和桌面操作系统发布了1.0 RTM 版本,新进项目采用了这个崭新的框架,计划将其部署在linux平台下,于是展开了这几天艰苦卓绝的尝试,鉴于是linux小白(小白都不算,算白痴),其中艰辛不言而喻,好的是最终成功解决相关问题,分享下相关经验给大家(其实全球首发是吹牛的)。

一、虚拟机安装

linux平台采用centOS 7.1 x64,附官网下载链接

https://www.centos.org/

下载DVD ISO即可,下载完成后,使用VM虚拟机进行安装,


全球首发!.Net Core+MySql Linux下跨平台_第1张图片
选择典型即可
全球首发!.Net Core+MySql Linux下跨平台_第2张图片
选择镜像文件
全球首发!.Net Core+MySql Linux下跨平台_第3张图片
选择安装路径
全球首发!.Net Core+MySql Linux下跨平台_第4张图片
其他各项默认即可
全球首发!.Net Core+MySql Linux下跨平台_第5张图片
在硬件配置中,将默认的NAT模式改为桥连模式,此模式可将虚拟试做单独主机,方便后期配置
全球首发!.Net Core+MySql Linux下跨平台_第6张图片
根据默认步骤进行安装


全球首发!.Net Core+MySql Linux下跨平台_第7张图片
选择中文,当然 你也可以选择英文
全球首发!.Net Core+MySql Linux下跨平台_第8张图片
安装位置点击后选择默认即可,选择完成后点击软件选择
全球首发!.Net Core+MySql Linux下跨平台_第9张图片
软件选择中选择基础设施服务器,并且勾选你觉得有用的附加项
全球首发!.Net Core+MySql Linux下跨平台_第10张图片
完成后点击开始安装


全球首发!.Net Core+MySql Linux下跨平台_第11张图片
安装的过程中可修改root用户密码及创建新用户,如果更改了密码,请记住。

安装完成后重启进入系统

全球首发!.Net Core+MySql Linux下跨平台_第12张图片
使用root账号登入系统,至此安装完成,接下来进如正题,进行配置。

首先进行网络连接配置,切换至网络配置文件目录

cd /etc/sysconfig/network-script/

[root@localhost network-scripts]# ls

ifcfg-eno16777736  ifdown-ppp      ifup-ib      ifup-Team

ifcfg-lo          ifdown-routes    ifup-ippp    ifup-TeamPort

ifdown            ifdown-sit      ifup-ipv6    ifup-tunnel

ifdown-bnep        ifdown-Team      ifup-isdn    ifup-wireless

ifdown-eth        ifdown-TeamPort  ifup-plip    init.ipv6-global

ifdown-ib          ifdown-tunnel    ifup-plusb  network-functions

ifdown-ippp        ifup            ifup-post    network-functions-ipv6

ifdown-ipv6        ifup-aliases    ifup-ppp

ifdown-isdn        ifup-bnep        ifup-routes

ifdown-post        ifup-eth        ifup-sit

此处ifcfg-eno16777736(有可能不一样名字 ,一般格式为ifcfg-eno***)文件即为当前主机网络配置文件,对其进行编辑

vim ifcfg-eno16777736

配置如下:

TYPE=Ethernet

BOOTPROTO=none//或static

NAME=eno16777736

NM_CONTROLLED=yes

UUID=5b057938-8a01-4e9f-89db-7620029f6fbb

DEVICE=eno16777736

ONBOOT=yes

DNS1=8.8.8.8//dns地址

HWADDR=00:0C:29:B6:80:B5

IPADDR=192.168.1.16//静态IP地址

PREFIX=24

GATEWAY=192.168.1.1//网关

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=no

配置完成后Esc后:wq保存,然后重新启动网络服务

service network restart

之后测试网络是否连通

ping www.baidu.com

全球首发!.Net Core+MySql Linux下跨平台_第13张图片

好了  有返回,ctrl+C退出,网络设置完成,此处遇到一个坑 在我多次设置网络后发现因为vm没有根据侨联模式适配主机网卡,搞配置折腾了大半天,最后知道真相的我眼泪掉下来。。。。

为什么先配网络呢   对于没有图形化界面 感觉太头大,配网络主要为了装图形化界面,好 输入指令警醒图形化界面安装

$sudo  yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

根据操作进行选择确定,安装完成后

全球首发!.Net Core+MySql Linux下跨平台_第14张图片

显示如上,再键入指令设置开机启动图像化界面

$sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

reboot虚拟机,之后就可以开心的用图形化了 最起码复制粘贴方便了好多

二、.net core生产环境配置

进入图形化界面之后就可以开始干正事了,有不需要图形化界面的小伙伴可以省略上面的图形化界面安装,效果是一样的、

用于生产环境、当然更追求性能最大化,参考多篇大神作品后觉得使用便携的方式进行发布会更好,本文主要讲解便携式发布配置

微软官网给出了便捷的支持与依赖,登录官网(其实官网步骤很全这里好像没什么好说的)

https://www.microsoft.com/net/core#centos

首先进行libicu依赖安装

sudo yum install libunwind libicu


全球首发!.Net Core+MySql Linux下跨平台_第15张图片
已经安装完成

curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131(下载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 --info


全球首发!.Net Core+MySql Linux下跨平台_第16张图片
安装成功

上传之前发布的.net core应用文件夹至/home/wwwroot/(此处可配置Ftp服务器进行上传,网上教程很多,后续我会补上)


切换至你应用文件夹

cd /home/wwwroot/WebApp//你应用文件夹

之后键入已发布的应用Dll文件

键入(此处有一个坑,又是折腾好久,配置完成后直接使用dotnet接文件路径,打开网站后什么都不显示,多方查找后不知道原因,后来发现需要先cd进文件目录,再dotnet文件名,网站正常运行,目前仍不知问题所在,有待后续解决 )

dotnet WebApplication1.dll

如果提示如上提示 证明运行成功但是下面还需要在配置Nginx容器

curl -o  nginx.rpmhttp://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应用的转发

vim /etc/nginx/conf.d/default.conf //修改/etc/nginx/conf.d/default.conf文件。

详细配置如下

server {

   listen 80;

   location / {

   proxy_passhttp://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 –s reload使其即时生效

然后执行

yum install policycoreutils-python

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

sudo semodule -i mynginx.pp

三条指令,将nginx添加至SELinux的白名单

OK,接着dotnet发布文件


全球首发!.Net Core+MySql Linux下跨平台_第17张图片
nice 发布完成

未完待续。。。今晚太困了,后续会接上应用守护服务、mysql数据库安装及配置、结合EF core框架的相关配置及应用发布、还有一大堆我记不起来。。。

你可能感兴趣的:(全球首发!.Net Core+MySql Linux下跨平台)