1. 程式人生 > >Linux 如何部署安裝.NetCore 程序

Linux 如何部署安裝.NetCore 程序

AD 但我 關閉 download spa 如果 tco blank cal

件準備:  

  XShell:終端模擬器,支持SSH、SFTP、telnet,rlogin和串行。用於window系統遠程連接其他不同系統服務器;

  XFtp:Xftp是一個靈活和輕量級SFTP / FTP客戶端用戶需要安全地通過網絡傳輸文件。它提供了強大的功能,如直接編輯多個窗格,文件夾同步,他們支持,服務器到服務器轉移和第三方編輯器集成。

    安裝教程:https://blog.csdn.net/HighproX/article/details/51283990

  Linux虛擬機或服務器一臺;

開始

1、 將.NetCore代碼上傳到GitHub或其他代碼雲托管中

  如果不能上傳到GitHub,也可使用XFtp將代碼上傳到Linux服務器中,如圖;

  如果能通過Git拉去代碼,則可以在linux服務器中安裝git ,使用方式和在Window中沒有區別,安裝命令 :yum install git

技術分享圖片

2、 使用XShell登陸Linux服務器,使用教程參考https://blog.csdn.net/HighproX/article/details/51283990

  進入後,使用yum安裝相關依賴,我使用的NetCore SDK版本為2.0.3,在服務器中也將安裝2.0.3版本,在安裝前,請務必先將其他版本的dotnet sdk刪除,如果在安裝了多個版本SDK,那麽在部署的時候會產生一些莫名奇妙的問題;

  開始安裝dotnet sdk:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-2.0.3,實際打開後是英文的,我是通過Chrome瀏覽器進行翻譯過的;技術分享圖片

  可通過 dotnet --info 命令來確認dotnet是否安裝完成

  技術分享圖片

3、此時,dotnet sdk已經安裝完成,代碼也已經上傳到linux服務器,接下來,使用cd 命令,跳轉到代碼目錄下,比如我的代碼文件實在 /AliyunGit/***** 目錄下,執行 dotnet build -c Release 命令打包代碼,然後在執行 dotnet publish -c Release 命令發布代碼,這兩句命令的作用是打包發布當前目錄下的所有NetCore工程,發布後的文件將會在 /工程文件/bin/Release/netcoreapp2.0 下,如果你的sdk是2.1版本,那麽netcoreapp2.0就會變成netcoreapp2.1

  技術分享圖片技術分享圖片

如果不是用XFtp查看,也可使用ls path 或者 ll path命令查看制定目錄下所有文件,如果ls 或者 ll 後面不接路徑,則表示查看當前目錄下所有文件

技術分享圖片

4、使用cd 進入到netcoreapp2.0目錄下,使用 dotnet 工程名稱.dll,出現這個也就是說明運行成功,但我們在外網還是訪問不了這個網站,需要一個Web容器進行轉發;(下圖是Copy其他教程的,但是我的運行結果和圖中區別只有路徑不同)

 初始默認端口為 5000,如果想要更改端口:https://blog.csdn.net/u010584641/article/details/79525535

技術分享圖片

5、安裝Nginx:https://segmentfault.com/a/1190000007116797

6、安裝完Nginx後,開始配置 Nginx 的 location ,這個不做多說,我也不是很清楚,連接如下:

  https://moonbingbing.gitbooks.io/openresty-best-practices/ngx/nginx_local_pcre.html
  http://seanlook.com/2015/05/17/nginx-location-rewrite/

  下圖是我的項目location配置

  技術分享圖片

7、配置完成後,重啟Nginx,Service Nginx restart

8、再重復第4步操作;

9、此時我們已經能夠在外網中能夠訪問部署的程序了,基本上上來說,部署算完成了,但是,如果把XShell關閉後,就發現,部署完成的網站又不能訪問了,對此,我的理解是,之前所運行的程序只是在前臺運行,而沒有轉入後臺運行,類似於 visual studio中的調試狀態;我是通過linux的定時任務(crontab命令)解決,大致原理是,編寫一個 Shell腳本文件,在腳本文件中判斷網站程序是否正在運行,如果沒有正在運行則啟用(也就是執行第4步操作),然後在通過crontab 定時執行這個 Shell 腳本;

10、Linux 如何定時執行.NetCore程序

Linux 如何部署安裝.NetCore 程序