在Linux環境下使用Apache部署ASP.NET Core
阿新 • • 發佈:2018-03-29
tgt tab dot sce aaa target 部署 AI startup 在前幾篇文章中我們一起探討了如何在Linux環境中安裝ASP.NET Core運行時環境及將ASP.NET Core項目部署在Jexus中,這篇文章中我們將探討如何將ASP.NET Core部署於Apache(阿帕奇)中。
很幸運能夠和大家一起學習和探討ASP.NET Core
本文章運行環境如下:
(1)安裝Apache web服務器
運行命令行如下:
sudo yum update -y //更新倉庫
sudo yum -y install httpd mod_ssl //安裝Apache web服務器
(2)新建一個空ASP.NET Core MVC 項目
運行命令如下:
cd /home //定位到home目錄下
dotnet new mvc -o hellomvc
接下來我們對空項目做一些變更以符合當前運行環境
1?? 針對Program.cs類 BuildWebHost方法 添加指定端口運行
2?? 在Startup.cs添加 Microsoft.AspNetCore.HttpOverrides命名空間,並在Configure方法中添加URL中間件
調試當前項目運行是否正常
運行命令如下:
cd /home/hellomvc //定位到指定目錄
dotnet run //運行當前項目
運行成功,效果如下:
(3) 生成項目部署文件
運行命令如下:
mkdir -p /var/aspnetcore/hellomvc //新建目錄 hellomvc
cd /home/hellomvc/ //定位到指定目錄
dotnet publish -o /var/aspnetcore/hellomvc //生成部署文件
因為是空的項目,所以我們把視圖文件夾復制到部署目錄中
目錄結構如下:
運行下面的命令測試發布的程序是否運行正常.
dotnet /var/aspnetcore/hellomvc/hellomvc.dll
(4) 修改Apache 網站配置文件
運行如下命令
cd /etc/httpd/conf.d/ //定位到指定目錄
touch hellomvc.conf //新建名為hellomvc.conf的文件
vi hellomvc.conf //打開hellomvc.conf
嗯 改成這樣就可以了,.你不會不會抄吧......(我知道命令行很痛苦,所以我千辛萬苦裝了個圖形界面)
查看配置是否正常
sudo service httpd configtest
重新啟動Apache
sudo systemctl restart httpd
sudo systemctl enable httpd
OK,現在 Apache 已將位於 http://localhost:80 的請求轉發至h ttp://127.0.0.1:7000
(4) 設置 Kestrel 守護
ASP.NET Core運行在Kestrel 上,我們使用systemd來 啟動和監視Kestrel 。
創建服務定義文件
sudo nano /etc/systemd/system/kestrel-hellomvc.service
註意: 若提示 nano: command not found 則可能nano未安裝
執行 yum install nano 命令, 安裝nano後再次執行創建服務定義
文件命令.
服務定義文件內容如下:
保存該文件並啟用該服務,然後驗證它正在運行
systemctl enable kestrel-hellomvc.service
systemctl start kestrel-hellomvc.service
systemctl status kestrel-hellomvc.service
OK,讓我們運行瀏覽器
很幸運能夠和大家一起學習和探討ASP.NET Core
本文章運行環境如下:
(1)安裝Apache web服務器
運行命令行如下:
sudo yum update -y //更新倉庫
sudo yum -y install httpd mod_ssl //安裝Apache web服務器
(2)新建一個空ASP.NET Core MVC 項目
運行命令如下:
cd /home //定位到home目錄下
dotnet new mvc -o hellomvc
接下來我們對空項目做一些變更以符合當前運行環境
1?? 針對Program.cs類 BuildWebHost方法 添加指定端口運行
2?? 在Startup.cs添加 Microsoft.AspNetCore.HttpOverrides命名空間,並在Configure方法中添加URL中間件
調試當前項目運行是否正常
運行命令如下:
cd /home/hellomvc //定位到指定目錄
dotnet run //運行當前項目
運行成功,效果如下:
(3) 生成項目部署文件
運行命令如下:
mkdir -p /var/aspnetcore/hellomvc //新建目錄 hellomvc
cd /home/hellomvc/ //定位到指定目錄
dotnet publish -o /var/aspnetcore/hellomvc //生成部署文件
因為是空的項目,所以我們把視圖文件夾復制到部署目錄中
目錄結構如下:
運行下面的命令測試發布的程序是否運行正常.
dotnet /var/aspnetcore/hellomvc/hellomvc.dll
(4) 修改Apache 網站配置文件
運行如下命令
cd /etc/httpd/conf.d/ //定位到指定目錄
touch hellomvc.conf //新建名為hellomvc.conf的文件
vi hellomvc.conf //打開hellomvc.conf
嗯 改成這樣就可以了,.你不會不會抄吧......(我知道命令行很痛苦,所以我千辛萬苦裝了個圖形界面)
查看配置是否正常
sudo service httpd configtest
重新啟動Apache
sudo systemctl restart httpd
sudo systemctl enable httpd
OK,現在 Apache 已將位於 http://localhost:80 的請求轉發至h ttp://127.0.0.1:7000
(4) 設置 Kestrel 守護
ASP.NET Core運行在Kestrel 上,我們使用systemd來
創建服務定義文件
sudo nano /etc/systemd/system/kestrel-hellomvc.service
註意: 若提示 nano: command not found 則可能nano未安裝
執行 yum install nano 命令, 安裝nano後再次執行創建服務定義
文件命令.
服務定義文件內容如下:
保存該文件並啟用該服務,然後驗證它正在運行
systemctl enable kestrel-hellomvc.service
systemctl start kestrel-hellomvc.service
systemctl status kestrel-hellomvc.service
OK,讓我們運行瀏覽器
在Linux環境下使用Apache部署ASP.NET Core