? ? ? 作為一種全新的開源和跨平臺的開發(fā)平臺漱贱,.NET Core歷經(jīng)兩年多的開發(fā)峡钓,終于在于2016年6月27日針對所有主流服務(wù)器和桌面操作系統(tǒng)發(fā)布了1.0 RTM 版本妓笙,新進(jìn)項(xiàng)目采用了這個(gè)嶄新的框架,計(jì)劃將其部署在linux平臺下能岩,于是展開了這幾天艱苦卓絕的嘗試寞宫,鑒于是linux小白(小白都不算,算白癡)拉鹃,其中艱辛不言而喻辈赋,好的是最終成功解決相關(guān)問題,分享下相關(guān)經(jīng)驗(yàn)給大家(其實(shí)全球首發(fā)是吹牛的)膏燕。
一炭庙、虛擬機(jī)安裝
linux平臺采用centOS 7.1 x64,附官網(wǎng)下載鏈接
下載DVD ISO即可煌寇,下載完成后焕蹄,使用VM虛擬機(jī)進(jìn)行安裝,
安裝完成后重啟進(jìn)入系統(tǒng)
首先進(jìn)行網(wǎng)絡(luò)連接配置献宫,切換至網(wǎng)絡(luò)配置文件目錄
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***)文件即為當(dāng)前主機(jī)網(wǎng)絡(luò)配置文件,對其進(jìn)行編輯
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保存姊途,然后重新啟動(dòng)網(wǎng)絡(luò)服務(wù)
service network restart
之后測試網(wǎng)絡(luò)是否連通
ping www.baidu.com
好了 ?有返回涉瘾,ctrl+C退出,網(wǎng)絡(luò)設(shè)置完成捷兰,此處遇到一個(gè)坑 在我多次設(shè)置網(wǎng)絡(luò)后發(fā)現(xiàn)因?yàn)関m沒有根據(jù)僑聯(lián)模式適配主機(jī)網(wǎng)卡立叛,搞配置折騰了大半天,最后知道真相的我眼淚掉下來贡茅。囚巴。。友扰。
為什么先配網(wǎng)絡(luò)呢 ? 對于沒有圖形化界面 感覺太頭大彤叉,配網(wǎng)絡(luò)主要為了裝圖形化界面,好 輸入指令警醒圖形化界面安裝
$sudo? yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
根據(jù)操作進(jìn)行選擇確定村怪,安裝完成后
顯示如上秽浇,再鍵入指令設(shè)置開機(jī)啟動(dòng)圖像化界面
$sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
reboot虛擬機(jī),之后就可以開心的用圖形化了 最起碼復(fù)制粘貼方便了好多
二甚负、.net core生產(chǎn)環(huán)境配置
進(jìn)入圖形化界面之后就可以開始干正事了柬焕,有不需要圖形化界面的小伙伴可以省略上面的圖形化界面安裝,效果是一樣的梭域、
用于生產(chǎn)環(huán)境斑举、當(dāng)然更追求性能最大化,參考多篇大神作品后覺得使用便攜的方式進(jìn)行發(fā)布會更好病涨,本文主要講解便攜式發(fā)布配置
微軟官網(wǎng)給出了便捷的支持與依賴富玷,登錄官網(wǎng)(其實(shí)官網(wǎng)步驟很全這里好像沒什么好說的)
https://www.microsoft.com/net/core#centos
首先進(jìn)行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應(yīng)用文件夾至/home/wwwroot/(此處可配置Ftp服務(wù)器進(jìn)行上傳,網(wǎng)上教程很多既穆,后續(xù)我會補(bǔ)上)
cd /home/wwwroot/WebApp//你應(yīng)用文件夾
之后鍵入已發(fā)布的應(yīng)用Dll文件
鍵入(此處有一個(gè)坑赎懦,又是折騰好久,配置完成后直接使用dotnet接文件路徑幻工,打開網(wǎng)站后什么都不顯示励两,多方查找后不知道原因,后來發(fā)現(xiàn)需要先cd進(jìn)文件目錄囊颅,再dotnet文件名当悔,網(wǎng)站正常運(yùn)行傅瞻,目前仍不知問題所在,有待后續(xù)解決?)
dotnet WebApplication1.dll
如果提示如上提示 證明運(yùn)行成功但是下面還需要在配置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來啟動(dòng)nginx盲憎。
輸入:systemctl enable nginx來設(shè)置nginx的開機(jī)啟動(dòng)(linux宕機(jī)嗅骄、重啟會自動(dòng)運(yùn)行nginx不需要連上去輸入命令)。
防火墻配置
命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(開放80端口)
命令:systemctl restart firewalld(重啟防火墻以使配置即時(shí)生效)
之后就可以正常訪問nginx了
接著配置nginx對ASP.NET Core應(yīng)用的轉(zhuǎn)發(fā)
vim?/etc/nginx/conf.d/default.conf?//修改/etc/nginx/conf.d/default.conf文件焙畔。
詳細(xì)配置如下
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使其即時(shí)生效
然后執(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ù)會接上應(yīng)用守護(hù)服務(wù)、mysql數(shù)據(jù)庫安裝及配置留搔、結(jié)合EF core框架的相關(guān)配置及應(yīng)用發(fā)布更胖、還有一大堆我記不起來。隔显。却妨。