帶你快速進入.net core的世界

来源:http://www.cnblogs.com/zhaopei/archive/2017/08/07/netcore.html
-Advertisement-
Play Games

【申明】:本人.NET Core小白、Linux小白、MySql小白、nginx小白。而今天要說是讓你精通Linux ... 的開機與關機、nginx安裝與部署、Core的Hello World ...等。 首先,入門文章園子裡面已經很多了。這裡再做個整理和備忘。您也可以根據目錄挑著看。(親測多次可 ...


【申明】:本人.NET Core小白、Linux小白、MySql小白、nginx小白。而今天要說是讓你精通Linux ... 的開機與關機、nginx安裝與部署、Core的Hello World ...等。

首先,入門文章園子裡面已經很多了。這裡再做個整理和備忘。您也可以根據目錄挑著看。(親測多次可行,以下多圖預警!)

vmware虛擬機安裝

vmware哪裡下載?360軟體管家就可以下載。然後網上找個序列號。
我這裡安裝的是12.1.1

安裝很簡單一直下一步就好了。

CentOS7.3安裝

下載CentOS http://isoredirect.centos.org/centos/7/isos/x86_64/ 我們可以選擇163或阿裡雲的節點,速度會快點。

下載完成後打開vmware準備安裝







菜鳥可以選擇有界面的


選好後然後開始安裝,然後設置密碼,然後重啟就好了。

Windows的客戶端軟體

下載安裝Xshell https://www.baidu.com/baidu?word=Xshell
下載安裝WinSCP https://www.baidu.com/baidu?word=WinSCP (你也可以使用Xftp,記得選sftp,不然需要伺服器支持ftp)
進入CentOS,右鍵

開始第一個命令。查看IP

ifconfig -a


接下來,可以全部由Xshell操作。
打開Xshell

然後輸入用戶名密碼登錄。(使用root登錄)

.NET Core1.1安裝

根據微軟資料 https://www.microsoft.com/net/core#linuxcentos
在命令行執行:

sudo yum install libunwind libicu  #(安裝libicu依賴)
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848821 #(下載sdk壓縮包) 根據網速,可能快可能慢
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet #(解壓縮)
sudo ln -s /opt/dotnet/dotnet /usr/local/bin #(創建鏈接)
dotnet new console -o hwapp   # 我們初始化一個示例Hello World應用程式 (這裡稍微耗時點)
cd hwapp
dotnet restore
dotnet run   #運行應用程式 


看到列印的hello world證明 .net core的環境已經裝好了。

【小白技巧】

  • "#"是註釋
  • shirf + insert 粘貼 (不能ctrl + c v 有點不習慣)
  • ctrl + insert 複製

nginx1.12.1安裝

curl -o  nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx.rpm
yum install nginx #安裝

systemctl start nginx #啟動nginx
systemctl enable nginx #設置nginx的開機啟動

然後登錄 CentOs系統 打開瀏覽器 輸入 :192.168.233.129 (之前查到的IP)

看到這個頁面就代表安裝成功了。

配置防火牆

如果你在物理機的瀏覽器訪問,你會發現訪問不了。
那是因為CentOs的防火牆攔截了,我們打開埠。

firewall-cmd --zone=public --add-port=80/tcp --permanent #(開放80埠)
systemctl restart firewalld #(重啟防火牆以使配置即時生效)

然後訪問成功。

部署ASP.NET Core應用程式

打開VS2017 新建一個.net core 項目

右鍵發佈(發佈之前最好先在本地跑下看正常不)

然後打開我們的WinSCP(前面下載的)

點擊登錄,然後就可以看到CentOs系統的文件目錄了。然後隨便建個文件夾,準備放我們發佈發好的程式。

右鍵上傳

然後命令運行

cd /home/NetCoreDemo #這個目錄 要輸入你自己對應放的目錄
dotnet netcoreDemo.dll # netcoreDemo.dll 這個對應你建的項目生成的dll


看到了5000 埠的一個網址,證明部署好了。
然後在虛擬機裡面訪問 http://localhost:5000 ,ok。

nginx 配置

前面我們只說了nginx,並沒有說是幹嘛的。nginx的作用有點先iis,是個web伺服器。做轉發。
我們發現http://localhost:5000 可以訪問。但是通過ip卻不能訪問。那麼我們現在就可以通過80訪問nginx,然後nginx再幫我們訪問5000。

打開路徑 /etc/nginx/conf.d
編輯default.conf 文件內容替換為

server {
    listen 80;
    location / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

將nginx添加至SELinux的白名單,否則會報502錯誤。

nginx -s reload #使其即時生效
【註意】然後這裡訪問下 http://192.168.233.130/ (對應你自己的centos ip,這一步好重要。應該是要先主動觸發這個502錯誤吧。)
yum install policycoreutils-python  #(選y)
cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
semodule -i mynginx.pp

然後我們就可以在物理機上通過ip訪問了(不用帶埠了,直接80 然後 nginx 轉到了5000)。

配置守護服務(Supervisor)

yum install python-setuptools
easy_install supervisor  #安裝Supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf  #配置Supervisor


文件的最後

;[include]
;files = relative/directory/*.ini

改成(【註意】去掉;且不能有空格)

[include]
files = conf.d/*.conf

進入目錄 /etc/supervisor/ 新建 conf.d文件夾,conf.d文件夾下新建 netcoreDemo.conf文件
內容(【註意】看 第二行 第三行的 註釋,根據實際名字填入

[program:netcoreDemo]
command=dotnet netcoreDemo.dll ; (註意)運行程式的命令
directory= /home/NetCoreDemo/ ; (註意)命令執行的目錄
autorestart=true ; 程式意外退出是否自動重啟
stderr_logfile=/var/log/WebApplication1.err.log ; 錯誤日誌文件
stdout_logfile=/var/log/WebApplication1.out.log ; 輸出日誌文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變數
user=root ; 進程執行的用戶身份
stopsignal=INT
supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep netcoreDemo  #【註意】netcoreDemo是上面 program:netcoreDemo 的命名 
supervisorctl reload  #重新載入


然後就好了,現在關掉那個5000界面也可以訪問。

配置Supervisor開機啟動

打開目錄 /usr/lib/systemd/system/ 新建文件 supervisord.service
內容:

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

執行命令:

systemctl enable supervisord  
systemctl is-enabled supervisord #來驗證是否為開機啟動

到此,完工。現在重新電腦什麼都不用管,直接可以訪問部署好的網站。

MySql5.6.37安裝

http://www.cnblogs.com/starof/p/4680083.html (我用的方法二)

安裝rar壓縮

下載 http://www.rarsoft.com/download.htm

把文件放伺服器上。然後cd到這個目錄執行

tar -zxvf rarlinux-x64-5.4.0.tar.gz # rarlinux-x64-5.4.0.tar.gz是你下載的文件名
cd rar
make
rar #安裝

安裝好了後我們就可以打命令解壓文件了

cd #跳到壓縮文件目錄
rar x ceshi.rar     #解壓到當前文件夾 ceshi.rar是壓縮文件名
rar a abc.rar ceshi #壓縮文件夾 到 abc.rar

在CentOS中安裝完rar命令,會自動安裝zip命令

cd /home #進入/home目錄
zip -r mydata.zip mydata      #把/home目錄下麵的mydata目錄壓縮為mydata.zip
unzip mydata.zip -d mydatabak #把/home目錄下麵的mydata.zip解壓到mydatabak目錄裡面
zip -r abc123.zip abc 123.txt #把/home目錄下麵的abc文件夾和123.txt壓縮成為abc123.zip
unzip wwwroot.zip             #把/home目錄下麵的wwwroot.zip直接解壓到/home目錄裡面
unzip abc\*.zip               #把/home目錄下麵的abc12.zip、abc23.zip、abc34.zip同時解壓到/home目錄裡面
unzip -v wwwroot.zip          #查看把/home目錄下麵的wwwroot.zip裡面的內容
unzip -t wwwroot.zip          #驗證/home目錄下麵的wwwroot.zip是否完整
unzip -j wwwroot.zip          #把/home目錄下麵wwwroot.zip裡面的所有文件解壓到第一級目錄

常用linux命令

cd                 #目錄跳轉
cd /               #回到上一個目錄
ls                 #查看目錄下的文件
df -h              #查看文件使用情況
mkdir              #創建文件夾文件夾
vi                 # 編輯文件
:wq!               #強制保存文件,並退出vi

ifconfig -a        #查看ip
free #查看系統資源使用情況 http://blog.csdn.net/zhongluhuaok/article/details/52804187

firewall-cmd --zone=public --add-port=80/tcp --permanent    #開放80埠,也可以是其他埠
firewall-cmd --zone=public --remove-port=80/tcp --permanent  # 關閉埠
systemctl restart firewalld                                  #重啟防火牆,使其生效

service mysqld restart #重啟mysql
nginx -s reload        # nginx 生效
supervisorctl reload   # Supervisor生效
reboot                 # 重啟系統

shift + insert #粘貼
shift + insert #複製

 

結束
這幾天給我的感受就是,CentOS帶我進入了一個更開闊的世界!!!開啟我們的.net core吧,你會覺得很好玩的。
打算重寫Hi-Blogs系統
訪問地址:http://haojima.net (剛入手做了一個留言板、聊天室快去體驗下吧。.net core 跑在阿裡雲linux上的。)
開源地址:https://github.com/zhaopeiym/Hi-Blogs

 

參考


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

-Advertisement-
Play Games
更多相關文章
  • 對於在Linux上開發.Net Core的程式員來說, 似乎都缺少一個好的IDE. Windows上有Visual Studio, Mac上有Visual Studio for Mac, 難道Linux只有Visual Studio Code了嗎? Linux上有兩個最好的編輯器: VIM和Emac ...
  • 緩存可以大大提高應用程式載入時間和響應速度。我們可以使用緩存Tag Helpers緩存不會頻繁更改的HTML內容。 ...
  • 在前面的隨筆,我介紹了Bootstrap-table表格插件的具體項目應用過程,本篇隨筆介紹另外一個Bootstrap FieInput插件的使用,整合兩者可以實現我們常規的Web數據導入操作,導入數據操作過程包括有上傳文件,預覽數據,選擇並提交記錄等一系列操作。關於這個插件,我在早期隨筆《Boot... ...
  • .NET 微服務:適用於容器化 .NET 應用的體繫結構 容器和 Docker 簡介 什麼是 Docker? Docker 術語 Docker 容器、映像和註冊表 為 Docker 容器選擇 .NET Core 還是 .NET Framework 通用指南 何時為 Docker 容器選擇 .NET ...
  • 當用戶在客戶端上請求本地圖片的時候,我們需要把本地的圖片展示。 1.在控制器端把圖片轉換成流的形式 2.前臺請求控制器端的方法,輸出圖片 控制器端: public class ImageController : Controller { private static readonly string ...
  • 基於 HtmlHelper 自定義擴展Container Intro 基於 asp.net mvc 的許可權控制系統的一部分,適用於對UI層數據呈現的控制,基於 HtmlHelper 的擴展組件 Code 基於 asp.net mvc 的許可權控制系統示例代碼:https://github.com/We ...
  • 前言 很多同學想對CAP的機制以及用法等想有一個詳細的瞭解,所以花了將近兩周時間寫了這份中文的CAP文檔,對 CAP 還不知道的同學可以先看一下 "這篇文章" 。 本文檔為 CAP 文獻(Wiki),本文獻同時提供中文和英文版本,英文版本目前還在翻譯中,會放到Github Wiki 中。 目錄 前言 ...
  • 本例演示在母版頁中的銨鈕事件去獲取某些子頁的內容。在母版本中,有一個銨鈕事件。當瀏覽某些子頁時,用戶點一點母版頁的銨鈕,能去獲取當前頁的內容。 子頁很多,但我們並不是每一個子頁的內容均要去獲取,而且每個子頁的內容不一樣。因此你需要讓父頁的事件知道,哪些子頁是需要獲取的。說白了,這就是平時所說的介面。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...