美文网首页
全球首发!.Net Core+MySql Linux下跨平台

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

作者: 风骚满肚皮 | 来源:发表于2016-09-11 01:23 被阅读0次

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

    一、虚拟机安装

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

    https://www.centos.org/

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

    选择典型即可 选择镜像文件 选择安装路径 其他各项默认即可 在硬件配置中,将默认的NAT模式改为桥连模式,此模式可将虚拟试做单独主机,方便后期配置 根据默认步骤进行安装 选择中文,当然 你也可以选择英文 安装位置点击后选择默认即可,选择完成后点击软件选择 软件选择中选择基础设施服务器,并且勾选你觉得有用的附加项 完成后点击开始安装 安装的过程中可修改root用户密码及创建新用户,如果更改了密码,请记住。

    安装完成后重启进入系统

    使用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

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

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

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

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

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

    $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

    已经安装完成

    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应用文件夹至/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发布文件

    nice 发布完成

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

    相关文章

      网友评论

          本文标题:全球首发!.Net Core+MySql Linux下跨平台

          本文链接:https://www.haomeiwen.com/subject/rgieettx.html