項目目標部署環境:CentOS 7+html
項目技術點:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginxnode
開源地址:https://github.com/wmowm/nh.corepython
上一章已經講解了項目的結構,相對來講比較簡單,適合新手,傳送門 mysql
有小夥伴提問,ORM這塊爲何不用dapper或者EF,相對來講,NHibernate仍是比較陌生,由於我也沒用使用過Dapper或者EF,感興趣的小夥伴,能夠弄一個分支,作一個EF的DAL出來,model能夠共用linux
好了,如今開始進入正題,如何將項目部署到linux上面呢?nginx
這裏我一步步來說解,防止你們踩坑,裏面借鑑不少博客資源,衷心的感謝git
第一步,在linux上安裝mysqlgithub
安裝mysql網上有不少教程,我這裏就不詳細介紹了,我安裝的是mysql5.6,我是懶人,這裏推薦你們一款linux管理軟件appnode,能夠一鍵安裝軟件,很是的方便,官網地址:https://www.appnode.com/ 裏面有詳細的安裝教程,羣友:簡自豪,推薦的,它可不是狂小狗web
至關於一款可視化界面了,很是實用方便,裝好mysql,就來講說裏面的坑sql
坑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,有不對的地方,歡迎大佬拍磚,以避免誤人子弟,不甚感謝!