ASP.NET Core 程序发布到Linux(Centos7)爬坑实战
?前言
前階段弄了個Linux系統(tǒng)想倒騰倒騰.NET Core,結(jié)果看了下網(wǎng)上的資料,大部分都是過期的,走了不少彎路,不過還好,今下午總算搗鼓出來了。Linux命令太多了,唉。血的教訓:安裝一定要看官網(wǎng)的流程。
開始
首先,我們找到官網(wǎng)教程,安裝.NET Core 環(huán)境。地址:https://www.microsoft.com/net/core#linuxcentos
正如教程中所說,安裝之前先刪除以前的版本。我的刪除方法就是手動刪相應的文件夾。然后按照教程一步一步來就OK了。當然不排除你在實戰(zhàn)過程中會遇到各種各樣的麻煩,多搜,網(wǎng)上還是有方案的。
sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=843449sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin上述過程如果順利走完的話,就是沒啥問題了,環(huán)境就可以了。現(xiàn)在我們隨便新建一個ASP.NET Core程序。也不用編寫代碼,打開相應的程序目錄,我的如下:
這里呢,雖然發(fā)布方法是一樣的,但是我用的是git將代碼克隆到服務器,然后進行發(fā)布的。
首先,定位到相應目錄:
cd /root/project/LayIM.NETCoreClient/LayIM.NETCoreClient?---定位到web項目下
然后restore
dotnet restore
然后publish
dotnet publish
發(fā)布成功之后,會生成bin/Debug/netcoreapp1.0/publish 文件夾,然后定位到該文件夾,執(zhí)行:
dotnet LayIM.NETCoreClient.dll?--改成你的web項目dll
執(zhí)行完成之后如下:
雖然,localhost可以訪問了,但是在外網(wǎng)訪問還是不可以的,我這里的原因是80,5000端口沒有開放。開放即可。centos7中開放端口方式如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent
? ??? firewall-cmd --zone=public --add-port=5000/tcp --permanent
然后重啟firewall
最后,發(fā)現(xiàn)還是不能訪問。(我也不知道為啥),所以我也沒思考直接安裝了ngnix。
sudo yum install nginx
sudo service nginx start
改一下配置文件,etc/nginx/nginx.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 -s reload
見證奇跡的時候到啦。
?
總結(jié)
成功是成功了,不過還是手動發(fā)布的。下一步打算看看jenkins,利用它配合github完成自動更新,打包發(fā)布的功能。就到這里吧。雖然寫的不多,但是動手的過程中,真真是碰到了各種奇葩問題,還是自己對Linux不熟悉啊。不過成果出來,還是很高興的。下班嘍~~?
.Net Core 落地實踐 開源項目(DotNetLive)團隊招募啦,Git地址:https://github.com/dotnetlive
原文地址:http://www.cnblogs.com/panzi/p/6527085.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注
贊賞
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core 程序发布到Linux(Centos7)爬坑实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软的.NET Core开始支持Rasp
- 下一篇: Visual Studio 2017 A