全球首發!.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虛擬機進行安裝,


選擇典型即可
選擇鏡像文件
選擇安裝路徑
其他各項默認即可
在硬件配置中,將默認的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框架的相關配置及應用發布、還有一大堆我記不起來。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Page 1:nginx 服務器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,578評論 1 41
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,803評論 24 1,002
  • Nginx入門-在Linux上安裝Nginx 介紹 簡而言之,Nginx(發音為“engine x”)是一個小型、...
    呵呵噠1991閱讀 784評論 0 1
  • 2017年9月21日 第一天 定的六點二十的鬧鐘,被鈴聲吵醒,翻個身,繼續去睡,迷迷糊糊,腦子非常累。大概是十分鐘...
    青衣雨翼_shape閱讀 638評論 0 0
  • 日子一天天過的真快,轉眼又是周末,開學兩個學了,艾哲的變化還是有的,也許我只看她的缺點了,我每天都很焦慮,為她的馬...
    艾哲麻麻閱讀 113評論 0 0