ASP.NET Core 程式釋出到Linux(Centos7)爬坑實戰

丶Pz發表於2017-03-09

 前言

  前階段弄了個Linux系統想倒騰倒騰.NET Core,結果看了下網上的資料,大部分都是過期的,走了不少彎路,不過還好,今下午總算搗鼓出來了。Linux命令太多了,唉。血的教訓:安裝一定要看官網的流程。

開始

  首先,我們找到官網教程,安裝.NET Core 環境。地址:https://www.microsoft.com/net/core#linuxcentos

  正如教程中所說,安裝之前先刪除以前的版本。我的刪除方法就是手動刪相應的資料夾。然後按照教程一步一步來就OK了。當然不排除你在實戰過程中會遇到各種各樣的麻煩,多搜,網上還是有方案的。

sudo yum install libunwind libicu
curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=843449
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin

  上述過程如果順利走完的話,就是沒啥問題了,環境就可以了。現在我們隨便新建一個ASP.NET Core程式。也不用編寫程式碼,開啟相應的程式目錄,我的如下:

  

  這裡呢,雖然釋出方法是一樣的,但是我用的是git將程式碼克隆到伺服器,然後進行釋出的。

  首先,定位到相應目錄:

  cd /root/project/LayIM.NETCoreClient/LayIM.NETCoreClient ---定位到web專案下

  然後restore

  dotnet restore

  然後publish

  dotnet publish

  釋出成功之後,會生成bin/Debug/netcoreapp1.0/publish 資料夾,然後定位到該資料夾,執行:

  dotnet LayIM.NETCoreClient.dll --改成你的web專案dll

  執行完成之後如下:

  

  雖然,localhost可以訪問了,但是在外網訪問還是不可以的,我這裡的原因是80,5000埠沒有開放。開放即可。centos7中開放埠方式如下:

  firewall-cmd --zone=public --add-port=80/tcp --permanent

      firewall-cmd --zone=public --add-port=5000/tcp --permanent

  然後重啟firewall

  最後,發現還是不能訪問。(我也不知道為啥),所以我也沒思考直接安裝了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

  見證奇蹟的時候到啦。

  

 

總結

  成功是成功了,不過還是手動釋出的。下一步打算看看jenkins,利用它配合github完成自動更新,打包釋出的功能。就到這裡吧。雖然寫的不多,但是動手的過程中,真真是碰到了各種奇葩問題,還是自己對Linux不熟悉啊。不過成果出來,還是很高興的。下班嘍~~

  

 

  

 

相關文章