ASP.NET Core 部署到Cont OS 伺服器

来源:https://www.cnblogs.com/gzbit-zxx/archive/2018/09/06/9601852.html
-Advertisement-
Play Games

一、前言 當 asp.net core 發佈以後,實現了跨平臺。基於好奇,我就測試了一下 core 項目部署到 linux 伺服器。感覺一路還是有所收穫,接下來記錄一下操作流程。 工具:window 10、vs2017、centos 7、core 2.1.3 參考博客:Rabbit_Yi 、進擊的辣 ...


一、前言

  當 asp.net core 發佈以後,實現了跨平臺。基於好奇,我就測試了一下 core 項目部署到 linux 伺服器。感覺一路還是有所收穫,接下來記錄一下操作流程。

  工具:window 10、vs2017、centos 7、core 2.1.3

  參考博客:Rabbit_Yi  、進擊的辣條 、shuaiflying  感謝三位大佬的博客,收益匪淺。

二、安裝 .net core

  我這個人喜歡使用最新的版本,所以就按照最新的版本給大家介紹。

  下載:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-current

  

  運行代碼:

sudo yum update
sudo yum install dotnet-sdk-2.1
dotnet -version

因為我已經安裝了,所以出現:Nothing to do !你們就按照我的步驟來:不要慌

 查看按照環境是否完成:

dotnet -version

我安裝的版本是 2.1.40 的版本,最新的。如果您想看你安裝該環境的位置,您可以使用該命令查看。

查看安裝位置的命令:

whereis dotnet

我們啟動的時候,執行的是 /usr/local/bin/dotnet 這個。您可以參考我開篇所參考的三位大佬的。

 三、創建 .net core 項目

  在根目錄下按照我的命令執行。

mkdir -p codespace
cd codespace
dotnet new mvc --auth None --framework netcoreapp2.1

  命令解釋:

    1、創建一個路徑

    2、進入路徑

    3、創建一個mvc項目,使用2.1的版本。我們的環境就是2.1.4的。

  將項目運行起來:

ls
dotnet restore
dotnet run

  命令解釋

    1、ls 查看當前文件夾下麵的文件,同時也可以使用 ls -li

    2、還原依賴庫

    3、讓項目跑起來

 

  當看見如下所示,表示項目跑起來了。

  但是現在是看不了,有兩種因素:

    1、5000埠沒有開。

      解決方案:關閉防火牆,配置5000埠,使其開放。我按裝的是寶塔,直接配置就好。

    2、項目是跑在本地的,外面是訪問不了的。

       不用擔心,我們還是繼續往下演示。

四、安裝 Nginx 

   關於 Nginx 的介紹,我就不多說,您們自己查一下,瞭解就好 !

  下載 Nginx 命令:

mkdir software
cd software wget http://nginx.org/download/nginx-1.15.3.tar.gz

  命令解釋:

    1、創建 software 文件夾

    2、進入文件夾

    3、使用 wget 下載 Nginx包

  解壓文件:

tar zxf  nginx-1.13.8.tar.gz

  命令解釋:

     1、解壓文件 tar zxf是參數。

  運行如下命令:

cd nginx-1.15.3
./configure  --prefix=/usr/local/nginx  --pid-path=/var/run/nginx/nginx.pid  --lock-path=/var/lock/nginx.lock  --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log   --with-http_gzip_static_module   --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi  --http-uwsgi-temp-path=/var/temp/nginx/uwsgi   --http-scgi-temp-path=/var/temp/nginx/scgi 

  關於這點命令具體的解釋,您們還是去 shuaifiying的博客 看吧,非常詳細!

然後在該路徑下,運行如下命令:

make
make install

  我們移步到/usr 路徑下啟動 Nginx,具體如下:

 

cd /usr/local/nginx
cd sbin
./nginx

  解釋第三條命令:

    3、啟動 Nginx 代理

  當你看到如上圖所示,說明埠衝突了。那麼有兩種解決方案。

    1、將占用的埠關閉。

      具體步驟:

          netstat -ntpl
          kill 埠號

    2、修改Nginx 的代理埠。

      請看清楚我路徑,不要搞錯了哈。

  沒有報錯了,嘻嘻。然後就可以使用瀏覽器看了。

五、使用 nginx 映射我們自己的網站

  同時開兩個 ssh 視窗,一個發佈網站。一個控制 Nginx。如下圖:

 location / {
    proxy_pass http://localhost:5000;
  }

 然後重啟 ./nginx ,在啟動前先使用命令把埠殺掉,在重啟。

然後重新查看瀏覽器即可。但去看的時候,你會把一個問題,就是如下

然後立刻變成

 這是因為我們在新建項目時,預設創建了https的項目。但我們訪問 http 會預設條到 https.

 

解決方案:

 

 

然後就可以去瀏覽器種查看了。

就是這樣的,到此結束,還有一些關於其他的您們自己去研究!我就不一 一結束了。坑有點多,慢慢來。附件幾條命令

刪除文件夾:rm -rf +文件夾名

  如:rm -rf workspace

卸載軟體:yum -y remove +軟體名

  如:yum -y remove dotnet-runtime-deps-2.1.x86_64 

我在做的時候,伺服器都玩蹦了一下,尷尬。一直堅持到最好花了3小時。有些地方沒有理清楚。望大佬寫看我文章時,連我參考的文章一起看。他們的比我講得清楚。

 

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • DB數據源之SpringBoot+MyBatis踏坑過程(二)手工配置數據源與載入Mapper.xml掃描 原創文章,版權所有,未經允許進位轉載 吐槽之後應該有所改了,該方式可以作為一種過渡方式來使用。 1.環境說明 初次使用springboot,時間有限,需要迅速搭建好架構,沒有時間研究 使用sp ...
  • c/c++ 標準庫 string 標準庫 string的小例子 test1~test10 c++ include using namespace std; int main(void){ //test1 //string s1,s2; //cin s1 s2; //cout wd){ // cout ...
  • 本文使用簡單的面向過程的編程思想,更容易理解。 說明: 本文使用了簡單的模塊:requests和re模塊,當然也可以使用urlib模塊。 開發環境是:Python3.5 開發工具:VsCode 代碼如下: vscode結果如下圖所示: 本地文件如圖所示: ...
  • 線程 線程指的就是代碼的執行過程 進程其實是一個資源單位,而進程內的線程才是CPU上的執行單位 在傳統操作系統中,每個進程有一個地址空間,而且預設就有一個控制線程 線程顧名思義,就是一條流水線工作的過程,一條流水線必須屬於一個車間,一個車間的工作過程是一個進程 車間負責把資源整合到一起,是一個資源單 ...
  • 不論你是初入江湖,還是江湖老手,只要你想給自己一個定位那就少不了面試!面試的重要性相信大家都知道把,這就是我們常說的“第一印象”,給大家說一下我的面試心得把,面試前的緊張是要的,因為這能讓你充分準備。面試時的緊張是絕對要避開的,因為這可能導致你不能充分展現自己,說不定塑普都出來了。 分享個笑話舒緩一 ...
  • 通過GET得到參數數據 $_SERVER['QUERY_STRING'] 獲取?後面的值 $_SERVER['SCRIPT_NAME'] 獲取當前腳本的路徑 具體參數通過_GET['參數']獲得 通過POST得到參數數據 file_get_contents("php://input") 獲取?後面的 ...
  • 前言 先看效果圖: 思路 1.確認訪問的URL 2.模擬登錄你的QQ號 3.判斷好友空間是否加了許可權,切換到說說的frame,爬取當前頁面數據,下拉滾動條,翻頁繼續獲取 爬取的內容寫入本地TXT文件中 4.爬取到最後一頁,讀取TXT文件從而生成詞雲 具體分析 1.確認訪問的URL 這就很簡單了,我們 ...
  • 算術運算符 +:兩個操作數相加,例:2+3得5 -:第一個操作數減去第二個操作數 例:5-3得2 *:兩個操作數相乘,例:2*3得6 /:分子除以分母,例:5/2得2 %:取模運算符,整除後的餘數,例:5%2得1 ++:自增運算符,整數值增加1,例:i++ --:自減運算符,整數值減少1,例:i-- ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...