? ? ? 作為一種全新的開源和跨平臺的開發(fā)平臺,.NET Core歷經(jīng)兩年多的開發(fā),終于在于2016年6月27日針對所有主流服務器和桌面操作系統(tǒng)發(fā)布了1.0 RTM 版本,新進項目采用了這個嶄新的框架,計劃將其部署在linux平臺下,于是展開了這幾天艱苦卓絕的嘗試,鑒于是linux小白(小白都不算,算白癡),其中艱辛不言而喻,好的是最終成功解決相關(guān)問題,分享下相關(guān)經(jīng)驗給大家(其實全球首發(fā)是吹牛的)。
一、虛擬機安裝
linux平臺采用centOS 7.1 x64,附官網(wǎng)下載鏈接
下載DVD ISO即可,下載完成后,使用VM虛擬機進行安裝,











安裝完成后重啟進入系統(tǒng)

首先進行網(wǎng)絡連接配置,切換至網(wǎng)絡配置文件目錄
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***)文件即為當前主機網(wǎng)絡配置文件,對其進行編輯
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//靜態(tài)IP地址
PREFIX=24
GATEWAY=192.168.1.1//網(wǎng)關(guān)
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
配置完成后Esc后:wq保存,然后重新啟動網(wǎng)絡服務
service network restart
之后測試網(wǎng)絡是否連通
ping www.baidu.com

好了 ?有返回,ctrl+C退出,網(wǎng)絡設(shè)置完成,此處遇到一個坑 在我多次設(shè)置網(wǎng)絡后發(fā)現(xiàn)因為vm沒有根據(jù)僑聯(lián)模式適配主機網(wǎng)卡,搞配置折騰了大半天,最后知道真相的我眼淚掉下來。。。。
為什么先配網(wǎng)絡呢 ? 對于沒有圖形化界面 感覺太頭大,配網(wǎng)絡主要為了裝圖形化界面,好 輸入指令警醒圖形化界面安裝
$sudo? yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
根據(jù)操作進行選擇確定,安裝完成后

顯示如上,再鍵入指令設(shè)置開機啟動圖像化界面
$sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
reboot虛擬機,之后就可以開心的用圖形化了 最起碼復制粘貼方便了好多
二、.net core生產(chǎn)環(huán)境配置
進入圖形化界面之后就可以開始干正事了,有不需要圖形化界面的小伙伴可以省略上面的圖形化界面安裝,效果是一樣的、
用于生產(chǎn)環(huán)境、當然更追求性能最大化,參考多篇大神作品后覺得使用便攜的方式進行發(fā)布會更好,本文主要講解便攜式發(fā)布配置
微軟官網(wǎng)給出了便捷的支持與依賴,登錄官網(wǎng)(其實官網(wǎng)步驟很全這里好像沒什么好說的)
https://www.microsoft.com/net/core#centos
首先進行l(wèi)ibicu依賴安裝
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(創(chuàng)建鏈接)
完成上面這三步后 鍵入
dotnet --info

上傳之前發(fā)布的.net core應用文件夾至/home/wwwroot/(此處可配置Ftp服務器進行上傳,網(wǎng)上教程很多,后續(xù)我會補上)

cd /home/wwwroot/WebApp//你應用文件夾
之后鍵入已發(fā)布的應用Dll文件

鍵入(此處有一個坑,又是折騰好久,配置完成后直接使用dotnet接文件路徑,打開網(wǎng)站后什么都不顯示,多方查找后不知道原因,后來發(fā)現(xiàn)需要先cd進文件目錄,再dotnet文件名,網(wǎng)站正常運行,目前仍不知問題所在,有待后續(xù)解決?)
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來設(shè)置nginx的開機啟動(linux宕機、重啟會自動運行nginx不需要連上去輸入命令)。
防火墻配置
命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(開放80端口)
命令:systemctl restart firewalld(重啟防火墻以使配置即時生效)
之后就可以正常訪問nginx了
接著配置nginx對ASP.NET Core應用的轉(zhuǎn)發(fā)
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;
? }
}
執(zhí)行:nginx –s reload使其即時生效
然后執(zhí)行
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發(fā)布文件

未完待續(xù)。。。今晚太困了,后續(xù)會接上應用守護服務、mysql數(shù)據(jù)庫安裝及配置、結(jié)合EF core框架的相關(guān)配置及應用發(fā)布、還有一大堆我記不起來。。。