一、前言 當 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小時。有些地方沒有理清楚。望大佬寫看我文章時,連我參考的文章一起看。他們的比我講得清楚。