.NET Core跨平臺:.NET Core項目部署到linux(Centos7)

.NET Core跨平臺:.NET Core項目部署到linux(Centos7)
 
1.開篇說明
  a 上篇博客簡單的說明了一下 使用.NET Core開發的一個總結,地址是:( http://www.cnblogs.com/hanyinglong/p/6442148.html),那麼這篇博客咱們就在上一篇博客的基礎上對其代碼進行部署,將其部署在Linux Centos7下。
  b 這週週二,也就是3月7號,微軟發佈了最新的開發工具(Visual Studio 2017),簡單看了一下,帶來了更好的開發體驗,也推進了跨平臺開發的一大步,將來.NET的跨平臺將更加的成熟。
  c 下面咱們將一個.NET Core項目利用Jexus部署到linux下,那麼若是咱們要將一個.NET Core項目部署到linux服務器下,須要準備下面的幾個東西(Linux服務器,Jexus,安裝數據庫的服務器,其它(Redis)等)。
  d 下面咱們開始大體演示一下如何將.NET Core項目部署到linux服務器下,測試地址: http://www.chuxinm.com/
2.Jexus簡單說明
  a 官網地址: http://www.jexus.org/
  b 關於Jexus的安裝,我之前也寫過一篇文章,地址是( http://www.cnblogs.com/hanyinglong/p/5456757.html),我寫的這篇文章是基於Mono安裝的,什麼意思呢,也就是說要安裝Jexus,就要安裝Mono,可是如今Jexus提供了免Mono安裝的方案,很是方便,你們能夠體驗一下,若是安裝遇到什麼問題,你們能夠在官網或者其餘地方進行查詢解決。
  c Jexus快捷安裝((一對命令將會安裝成功Jexus))

    1.安裝:sudo curl jexus.org/release/install | shlinux

    2.更新:sudo curl jexus.org/release/upgrade | shshell

    說明:使用這種命令的安裝方法將會吧Jexus安裝到/usr/jexus 位置。數據庫

3.Visual Studio 2015本地發佈而且測試
  a 在本地系統開發完成以後,首先咱們須要在本地發佈進行測試一下,若是不報錯,則上傳到服務器
  b 本地項目結構以下圖所示:咱們就基於本項目進行發佈部署到Linux下。
    
    b.1 首先打開cmd,切換到項目所在盤符下,將項目切換到src根目錄下(../src/項目名稱下),運行命令dotnet publish,運行不報錯則本地發佈成功,如圖所示執行成功以後也展現了將項目發佈到什麼地方的路徑。
    
    b.2 如上圖所示,咱們跳轉到發佈的路徑下(項目根目錄下/bin/Debug/netcoreapp1.0/publish下/),運行命令:dotnet ProgrammersLiveShow.dll ,根據提示訪問地址,可本地測試嗎,如圖所示:
    
  c 如上圖所示,咱們按照訪問路徑( http://localhost:5000/),若是訪問成功,則證實本地發佈沒有任何問題,以下圖所示:若有操做登陸的功能,則進行系統登陸測試,確認沒有任何問題在進行發佈。 
      
4.配置Jexus而且部署.NET Core說明
  a 上述步驟中咱們簡單說明了一下系統的一些功能以及本地發佈,如今咱們來簡單說明一下如何配置Jexus,由於之前安裝過jexus,咱們直接在Linux下找到安裝的路徑,如圖所示:
    
  b 如上圖所示,咱們看到了jexus的安裝目錄,Jexus的配置其實也很簡單,首先咱們打開網站配置文件夾siteconf,而後打開默認的default文件,看到以下圖所示的配置,配置上簡單的說明以下:
             
  c 如上圖所示,咱們將其項目部署到系統(/var/www/default/publish)下
    
  d 首先咱們將本地發佈的文件上傳到服務器上,直接將本地的publish文件夾上傳到/var/www/default下,以下圖所示
    
  e 由於我如今系統自己已經發布,因此須要將如今後臺運行的線程關閉(執行下面兩條命令以後,則已經上線的系統會不能訪問),若是是首次發佈,則不須要進行這一步,命令以下,如圖所示:
    (1):ps -ef | grep ProgrammersLiveShow.dll  
    (2):kill -9 PID
    
  f 上傳完成以後,系統跳轉到publish下,執行dotnet ProgrammersLiveShow.dll,運行成功而且能夠訪問,則說明發布才成功,可是這樣有一個弊端,就是發佈以後不能關閉Xshell,若是關閉則默認程序會推出,因此,咱們可使用下面的命令直接將其設置爲在後臺運行
        命令以下:nohup dotnet ProgrammersLiveShow.dll &
    
  g 上述步驟所有執行完成以後使用服務器域名加80端口號既能夠進行訪問,這裏可能存在配置80端口號對外訪問的權限,在下面會簡單說明
5.其它知識點總結
    a 在系統頻繁的更新中,作好備份是很關鍵的一件事情,在每次的上線替換系統以前都要執行以下命令進行備份:
        tar zcvf /var/www/default/remark/(日期)publish.tar.gz /var/www/default/publish/
    b Centos7開放端口,Centos7和7之前開放端口的實現不一致.
        b.1 Centos升級到7以後,發現沒法使用iptables控制Linuxs的端口,google以後發現Centos 7使用firewalld代替了原來的iptables。下面記錄如何使用firewalld開放Linux端口
        b.2 開啓端口: firewall-cmd --zone=public --add-port=80/tcp --permanent   --zone #做用域  --add-port=80/tcp #添加端口,格式爲:端口/通信協議 --permanent #永久生效,沒有此參數重啓後失效 
        b.3 重啓防火牆 firewall-cmd --reload 
        b.4 開啓防火牆: systemctl start firewalld
 
  一個學習.NET Core權限配置的源碼購買地址:http://www.chuxinm.com/Shop/Detail/Detail?id=8c2e2aff9290446ababf9c5905fa2609
1.開篇說明
  a 上篇博客簡單的說明了一下 使用.NET Core開發的一個總結,地址是:( http://www.cnblogs.com/hanyinglong/p/6442148.html),那麼這篇博客咱們就在上一篇博客的基礎上對其代碼進行部署,將其部署在Linux Centos7下。
  b 這週週二,也就是3月7號,微軟發佈了最新的開發工具(Visual Studio 2017),簡單看了一下,帶來了更好的開發體驗,也推進了跨平臺開發的一大步,將來.NET的跨平臺將更加的成熟。
  c 下面咱們將一個.NET Core項目利用Jexus部署到linux下,那麼若是咱們要將一個.NET Core項目部署到linux服務器下,須要準備下面的幾個東西(Linux服務器,Jexus,安裝數據庫的服務器,其它(Redis)等)。
  d 下面咱們開始大體演示一下如何將.NET Core項目部署到linux服務器下,測試地址: http://www.chuxinm.com/
2.Jexus簡單說明
  a 官網地址: http://www.jexus.org/
  b 關於Jexus的安裝,我之前也寫過一篇文章,地址是( http://www.cnblogs.com/hanyinglong/p/5456757.html),我寫的這篇文章是基於Mono安裝的,什麼意思呢,也就是說要安裝Jexus,就要安裝Mono,可是如今Jexus提供了免Mono安裝的方案,很是方便,你們能夠體驗一下,若是安裝遇到什麼問題,你們能夠在官網或者其餘地方進行查詢解決。
  c Jexus快捷安裝((一對命令將會安裝成功Jexus))

    1.安裝:sudo curl jexus.org/release/install | shapp

    2.更新:sudo curl jexus.org/release/upgrade | shcurl

    說明:使用這種命令的安裝方法將會吧Jexus安裝到/usr/jexus 位置。tcp

3.Visual Studio 2015本地發佈而且測試
  a 在本地系統開發完成以後,首先咱們須要在本地發佈進行測試一下,若是不報錯,則上傳到服務器
  b 本地項目結構以下圖所示:咱們就基於本項目進行發佈部署到Linux下。
    
    b.1 首先打開cmd,切換到項目所在盤符下,將項目切換到src根目錄下(../src/項目名稱下),運行命令dotnet publish,運行不報錯則本地發佈成功,如圖所示執行成功以後也展現了將項目發佈到什麼地方的路徑。
    
    b.2 如上圖所示,咱們跳轉到發佈的路徑下(項目根目錄下/bin/Debug/netcoreapp1.0/publish下/),運行命令:dotnet ProgrammersLiveShow.dll ,根據提示訪問地址,可本地測試嗎,如圖所示:
    
  c 如上圖所示,咱們按照訪問路徑( http://localhost:5000/),若是訪問成功,則證實本地發佈沒有任何問題,以下圖所示:若有操做登陸的功能,則進行系統登陸測試,確認沒有任何問題在進行發佈。 
      
4.配置Jexus而且部署.NET Core說明
  a 上述步驟中咱們簡單說明了一下系統的一些功能以及本地發佈,如今咱們來簡單說明一下如何配置Jexus,由於之前安裝過jexus,咱們直接在Linux下找到安裝的路徑,如圖所示:
    
  b 如上圖所示,咱們看到了jexus的安裝目錄,Jexus的配置其實也很簡單,首先咱們打開網站配置文件夾siteconf,而後打開默認的default文件,看到以下圖所示的配置,配置上簡單的說明以下:
             
  c 如上圖所示,咱們將其項目部署到系統(/var/www/default/publish)下
    
  d 首先咱們將本地發佈的文件上傳到服務器上,直接將本地的publish文件夾上傳到/var/www/default下,以下圖所示
    
  e 由於我如今系統自己已經發布,因此須要將如今後臺運行的線程關閉(執行下面兩條命令以後,則已經上線的系統會不能訪問),若是是首次發佈,則不須要進行這一步,命令以下,如圖所示:
    (1):ps -ef | grep ProgrammersLiveShow.dll  
    (2):kill -9 PID
    
  f 上傳完成以後,系統跳轉到publish下,執行dotnet ProgrammersLiveShow.dll,運行成功而且能夠訪問,則說明發布才成功,可是這樣有一個弊端,就是發佈以後不能關閉Xshell,若是關閉則默認程序會推出,因此,咱們可使用下面的命令直接將其設置爲在後臺運行
        命令以下:nohup dotnet ProgrammersLiveShow.dll &
    
  g 上述步驟所有執行完成以後使用服務器域名加80端口號既能夠進行訪問,這裏可能存在配置80端口號對外訪問的權限,在下面會簡單說明
5.其它知識點總結
    a 在系統頻繁的更新中,作好備份是很關鍵的一件事情,在每次的上線替換系統以前都要執行以下命令進行備份:
        tar zcvf /var/www/default/remark/(日期)publish.tar.gz /var/www/default/publish/
    b Centos7開放端口,Centos7和7之前開放端口的實現不一致.
        b.1 Centos升級到7以後,發現沒法使用iptables控制Linuxs的端口,google以後發現Centos 7使用firewalld代替了原來的iptables。下面記錄如何使用firewalld開放Linux端口
        b.2 開啓端口: firewall-cmd --zone=public --add-port=80/tcp --permanent   --zone #做用域  --add-port=80/tcp #添加端口,格式爲:端口/通信協議 --permanent #永久生效,沒有此參數重啓後失效 
        b.3 重啓防火牆 firewall-cmd --reload 
        b.4 開啓防火牆: systemctl start firewalld
 
  一個學習.NET Core權限配置的源碼購買地址:http://www.chuxinm.com/Shop/Detail/Detail?id=8c2e2aff9290446ababf9c5905fa2609
相關文章
相關標籤/搜索