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











安装完成后重启进入系统

首先进行网络连接配置,切换至网络配置文件目录
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发布文件

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