Linux系統部署.Net Core3.1項目


一. 發布項目 

發布的連接選擇“文件系統”,部署模式選擇“框架依賴”,

二. 首先在目標Linux系統(CentOS 7.9)中安裝.Net Core SDK

說明:linux上安裝dotnetcore sdk有兩種方式,一個是使用編譯好的離線安裝包dotnet-sdk-3.1.201-linux-x64.tar.gz,一個是使用微軟提供的yum倉庫。

1. 使用離線sdk安裝包安裝sdk(推薦)

1.1 下載 dotnet-sdk,訪問官網:https://dotnet.microsoft.com/download/dotnet-core/3.1

1.2. 上傳安裝包到Linux系統

先 cd /usr/local 下創建一個文件夾 mkdir dotnet

將sdk安裝包上傳並解壓到這個目錄中

tar -zxvf dotnet-sdk-3.1.201-linux-x64.tar.gz -C /usr/local/dotnet

1.3. 配置環境變量

/etc/profile文件末尾加上兩行,命令 vim /etc/profile 進入,按 i 進行編輯,按 Esc 鍵退出后再按 :wq 進行保存。

export DOTNET_ROOT=/usr/local/dotnet
export PATH=$DOTNET_ROOT:$PATH

執行命令 source /etc/profile使改動生效:

source /etc/profile

1.4. 驗證dotnetcore環境:

dotnet -version 或 dotnet -info

2. 使用yum倉庫安裝

查看官方文檔:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-centos7

2.1.先添加微軟包存儲庫(我這里試過了下載不下來不知道為啥,所以就用上面離線安裝方式)

rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

2.2.查找出要裝的哪個sdk(非必要)

yum search dotnet

2.3.安裝.net core sdk

yum install dotnet-sdk-3.1

2.4.安裝完成后查看.Net Core SDK信息,或者用dotnet -version查看版本號

dotnet -info

三. 項目部署啟動過程

1. 創建一個/usr/local/netcore/DemoWeb目錄存放站點文件

2. 將我們打包好的部署文件publish目錄下的所有文件上傳到剛才創建的目錄

3. 使用cd命令進入站點目錄中:cd /usr/local/netcore/DemoWeb

4. 啟動項目,注:執行啟動命令,一定要指定dll的路徑或者先cd進入站點目錄,否則會啟動不成功

方式一:普通模式啟動和停止站點,這種啟動方式有個弊端就是,關閉Xshell的會話之后,站點同時會自動關閉,無法訪問

#進入項目目錄
cd /usr/local/netcore/DemoWeb
#啟動站點,自定義端口號,運行環境
dotnet Asp.NetCore.Demo.Web.dll --urls="http://*:5000;http://*:5001" --environment=Development
#停止站點
Ctrl+c

方式二:后台進程模式啟動和停止站點,避免關閉會話后,站點無法訪問

#進入項目目錄
cd /usr/local/netcore/DemoWeb
#啟動站點,自定義端口號,運行環境
nohup dotnet Asp.NetCore.Demo.Web.dll --urls="http://*:5000;http://*:5001" --environment=Delopment > /dev/null 2>&1 &
#查看相關進行
ps -aux | grep "Asp.NetCore.Demo.Web.dll"
#關閉站點進程,當前進程直接使用Ctrl+c
kill 進程號

這里使用后台進程,關閉Xshell也不會關閉站點,在當前進程,停止站點直接使用Ctrl+c,否則需要找出進程ID,然后kill進程號。

/dev/null:/dev/null相當於執行了command 1 > /dev/null。執行command產生了標准輸出stdout(用1表示),重定向到/dev/null的設備文件中
/dev/null可以理解為/dev路徑下的空文件;該命令將command命令的標准輸出輸出到空文件中
2>&1:可以理解為執行command產生的標准輸出重定向到文件中,標准錯誤也重定向到文件中,期間只打開一次文件,&1的含義就可以理解為用標准輸出的引用,引用的就是重定向標准輸出產生打開的文件。

注意:后台進程雖然可以再Xshell關閉后還能運行,但是當系統關機重啟后,進程就沒有了,這個時候還是需要手動啟動。

為dotnet創建守護進程的方式來保證開機就能訪問站點文章(為.Net Core項目創建Supervisor進程守護監控)。

5. 在瀏覽器中訪問即可,我們的瀏覽器能正常訪問,部署成功。 注:服務器防火牆中開放該端口號

#查看防火牆狀態
firewall-cmd --state
#批量開放端口
firewall-cmd --zone=public --add-port=5000-5001/tcp --permanent
#重啟防火牆
firewall-cmd --reload
#查看防火牆開放的端口
firewall-cmd --list-ports

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM