一、配置環境【Microsoft dotnet Core】
1) Add the dotnet product feed
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
2) Install the .NET SDK
sudo yum update sudo yum install dotnet-sdk-2.1
3) Create your project
dotnet new webapi -n test
4) 運行項目
dotnet run
5)發布
dotnet publish
6) 運行
dotnet test.dll
7)運行結果
二、從本地上傳項目,執行運行操作
出現這個問題是沒有安裝 dotnet-hosting-2.0.0,安裝一下
yum install dotnet-hosting-2.0.0
再次運行,又出現問題
說明現在的平台上的dotnet SDK不是2.0.3的【2.0.6不存在】,執行以下命令即可:
sudo yum install dotnet-sdk-2.0.3
繼續運行,安裝dotnet-hosting-2.0.x版本不對(你軟件對應的.net core 版本)
yum install dotnet-hosting-2.0.X
運行
這是因為沒裝libunwind。libunwind庫為基於64位CPU和操作系統的程序提供了基本的堆棧輾轉開解功能,32位操作系統不要安裝。其中包括用於輸出堆棧跟蹤的API、用於以編程方式輾轉開解堆棧的API以及支持C++異常處理機制的API
yum install libunwind
好了,終於運行成功
此時程序再centos上運行成功,我們可以在centos服務器中進行訪問,但是無法在外部瀏覽器中進行訪問,需要一個web容器進行轉發。可以使用jexus,也可以使用Nginx.
三、安裝Nginx
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
啟動nginx
輸入:systemctl start nginx 來啟動nginx。
輸入:systemctl enable nginx 來設置nginx的開機啟動(linux宕機、重啟會自動運行nginx不需要連上去輸入命令)。
開啟端口,進行測試nginx
firewall-cmd --zone=public --add-port=80/tcp --permanent ystemctl restart firewalld
四、配置dotnet core到nginx 【文章來源】
修改 /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 reload 使其即時生效
再次訪問,還是失敗。
這個問題是由於SELinux保護機制所導致,我們需要將nginx添加至SELinux的白名單。
yum install policycoreutils-python sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx sudo semodule -i mynginx.pp
再次訪問