1. 程式人生 > >第二章 在Linux上部署.net core

第二章 在Linux上部署.net core

程序 接口 linux per root 分享圖片 第一步 conf 源地址

項目目標部署環境:CentOS 7+

項目技術點:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx

開源地址:https://github.com/wmowm/nh.core

上一章已經講解了項目的結構,相對來說比較簡單,適合新手,傳送門

搭建一個通用的.net core項目框架

有小夥伴提問,ORM這塊為什麽不用dapper或者EF,相對來說,NHibernate還是比較陌生,因為我也沒用使用過Dapper或者EF,感興趣的小夥伴,可以弄一個分支,做一個EF的DAL出來,model可以共用

好了,現在開始進入正題,如何將項目部署到linux上面呢?

這裏我一步步來講解,防止大家踩坑,裏面借鑒很多博客資源,衷心的感謝

第一步,在linux上安裝mysql

安裝mysql網上有很多教程,我這裏就不詳細介紹了,我安裝的是mysql5.6,我是懶人,這裏推薦大家一款linux管理軟件appnode,可以一鍵安裝軟件,非常的方便,官網地址:https://www.appnode.com/ 裏面有詳細的安裝教程,群友:簡自豪,推薦的,它可不是狂小狗

技術分享圖片

相當於一款可視化界面了,非常實用方便,裝好mysql,就來說說裏面的坑

坑1. 開啟遠程訪問權限

默認用戶是root,沒有密碼,但是沒有開通遠程訪問,我們必須新建一個用戶,並開啟遠程訪問

坑2.權限問題

開啟遠程訪問後,通過客戶端可以正常鏈接mysql,此時需要開啟該用戶的權限

這裏推薦這篇博客:https://www.cnblogs.com/zhchoutai/p/6929103.html 我是參考它實現的

坑3.中文亂碼問題

這裏需要修改mysql的配置文件

這裏參考這篇博客:https://www.cnblogs.com/beginner-boy/p/7643541.html

第二步,安裝.net core SDK

坑1.網上的教程很多都是.net core 1.0的安裝教程,如果跟著走,可能你裝的SDK版本不對

這裏推薦安裝官網的教程,進行安裝SDK 傳送門 https://www.microsoft.com/net/learn/get-started/linux/centos 這裏可以根據linux的版本進行選擇

參考博客:http://www.cnblogs.com/GreedyL/p/7422796.html 我基本上是參考這篇博客,進行實現的

第三步,安裝nginx

當你.net core程序可以正常訪問後,此時我們需要把默認的5000端口,映射到外網,這裏借助nginx實現反向代理

安裝nginx肯定是借助appnode一件安裝啦,當然你也可以自己手動安裝,按照教程走,就可以了

坑1.映射靜態資源

因為最開始我部署的是一個mvc項目,當時一些靜態資源無法訪問,如js.img... 這些需要在nginx進行配置,我的配置文件如下

技術分享圖片

第四步 安裝 supervisord

在控制臺裏運行.net core,當控制臺關閉,我們的程序也對應關閉了,這是我們無法容忍了,所以我們需要把它運行到後臺,而且服務器重啟,也需要後臺程序自動啟動,這裏映入supervisord,它是python開發的

可以繼續參考 http://www.cnblogs.com/GreedyL/p/7422796.html 這篇博客進行安裝,並在配置文件夾寫入我們要啟動的程序,如圖

技術分享圖片

conf.d裏面放我們要啟動的程序配置信息,當supervisord每次啟動時,這樣程序集也會被啟動,我的配置如下

技術分享圖片

相對來說,還是非常簡單的,做完這裏恭喜你,你的.net core程序可以在linux上面跑了

今天我實現了webapi的接口,大家可以在mvc項目裏測試的玩玩,效果圖如下

技術分享圖片

代碼示例:

技術分享圖片

覺得對你有幫助的,可以在github給我點個星星,非常感謝

開源地址:https://github.com/wmowm/nh.core

後續章節會講解.net core,有不對的地方,歡迎大佬拍磚,以免誤人子弟,不甚感謝!

第二章 在Linux上部署.net core