1. 程式人生 > 程式設計 >ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

前言

ASP.NET Core 是一個開源和跨平臺的框架,用於構建如 Web 應用、物聯網(IoT)應用和移動後端應用等連線到網際網路的基於雲的現代應用程式。ASP.NET Core 應用可運行於 .NET Core 和完整的 .NET Framework 之上。它整合了原來ASP.NET中的MVC和WebApi框架,你可以在 Windows、Mac 和 linux 上跨平臺的開發和執行你的 ASP.NET Core 應用。

vmware虛擬機器安裝

vmwwww.cppcns.comare哪裡下載?360軟體管家就可以下載。然後網上找個序列號。

我這裡安裝的是12.1.1

ASP.NET Core快速入門之環境篇

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

CentOS7.3安裝

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

ASP.NET Core快速入門之環境篇

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

ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

菜鳥可以選擇有介面的

ASP.NET Core快速入門之環境篇

ASP.NET Core快速入門之環境篇

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

ASP.NET Core快速入門之環境篇

Windows的客戶端軟體

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

進入CentOS,右鍵

ASP.NET Core快速入門之環境篇

開始第一個命令。檢視IP

ifconfig -a

ASP.NET Core快速入門之環境篇

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

開啟Xshell

ASP.NET Core快速入門之環境篇

然後輸入使用者名稱密碼登入。(使用root登入)

ASP.NET Core快速入門之環境篇

.NET Core1.1安裝

根據微軟資料 https://www.microsoft.com/net/core

在命令列執行:

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   #執行應用程式 

ASP.NET Core快速入門之環境篇

看到列印的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-rlrtUEAMlcelease-centos-7-0.el7.ngx.noarch.rpm
rpm -ivh nginx.rpm
yum install nginx #安裝

ASP.NET Core快速入門之環境篇

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

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

ASP.NET Core快速入門之環境篇

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

配置防火牆

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

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

然後訪問成功。

部署ASP.NET Core應用程式

開啟VS2017 新建一個.net core 專案

ASP.NET Core快速入門之環境篇

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

ASP.NET Core快速入門之環境篇

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

ASP.NET Core快速入門之環境篇

點選登入,然後就可以看到CentOs系統的檔案目錄了。然後隨便建個資料夾,準備放我們釋出發好的程式。

ASP.NET Core快速入門之環境篇

右鍵上傳

ASP.NET Core快速入門之環境篇

然後命令執行

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

ASP.NET Core快速入門之環境篇

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

ASP.NET Core快速入門之環境篇

nginx 配置

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

ASP.NET Core快速入門之環境篇

開啟路徑 /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

SELinux 對nginx訪問目錄的影響
https://www.cnblogs.com/mywebnumber/p/5572984.html

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

配置守護服務(Supervisor)

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

ASP.NET Core快速入門之環境篇

檔案的最後

;[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  #重新載入

ASP.NET Core快速入門之環境篇

然後就好了,現在關掉那個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 #來驗證是否為開機啟動

systemctl stop supervisord      #關閉
systemctl disable supervisord #禁用

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

mysql5.6.37安裝

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

安裝rar壓縮

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

ASP.NET Core快速入門之環境篇

把檔案放伺服器上。然後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 生效
reboot                 # 重啟系統

supervisorctl start program_name   #啟動某個程序(program_name=你配置中寫的程式名稱)
supervisorctl stop program_name    #停止某一程序 (program_name=你配置中寫的程式名稱)
supervisorctl reload               #重新啟動配置中的所有程式
supervisorctl stop all             #停止全部程序
supervisorctl update               #更新新的配置到supervisord    
supervisorctl restart program_name #重啟某一程序 (program_name=你配置中寫的程式名稱)
superviso程式設計客棧rctl                      #檢視正在守候的程序
http://blog.csdn.net/shudaqi2010/article/details/51153961

clear          #重新整理終端螢幕 (或者 ctrl + l)
exit           #退出
shift + insert #貼上
ctrl + insert  #複製

補充

centos上升級 .net core 2.0 需要先執行官網命令

curl -sSL -o dotnet.tar.gz https://aka.ms/dotnet-sdk-2.0.0-linux-x64
mkdir -p ~/dotnet && tar zxf dotnet.tar.gz -C ~/dotnet
export PATH=$PATH:$HOME/dotnet

然後再刪除原有資料夾

rm -rf /opt/dotnet                              #刪除原有資料夾
rm -rf /usr/local/bin/dotnet                    #刪除原來定義的dotnet命令
sudo ln -s /root/dotnet/dotnet /usr/local/bin   #重新定義dotnet命令

專案程式也要升級到2.0,不然dotnet dll不能成功。

以上就是ASP.NET Core快速入門之環境篇的詳細內容,更多關於ASP.NET Core環境搭建的資料請關注我們其它相關文章!