在Ubuntu 20.4上搭配aapanel安裝net core操作教學

自從net core推出以來專案仍大多運行在windows上,最近想要自己做一些專案來玩一玩,於是就租用了一台VPS來體驗順便熟悉一下net core的跨平台安裝。

基本的Ubuntu這邊就不多作介紹,畢竟VPS租用以後就是已經安裝完成的狀態,如果想要自己在家透過VM練習net core安裝的話,想必對於安裝作業系統也有一定的程度與認識,因此這部分的安裝就不多著墨,直接從ubuntu安裝完成後的步驟來說明。

安裝aapanel的部分相當的簡單,只需要打一行安裝指令即可。這邊提供的指令是針對ubuntu的如果是其他系統可以參考官網的安裝說明。

aapanel安裝說明網頁

登入系統後輸入安裝指令。

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh aapanel

輸入完指令按下enter會詢問你是否要安裝aapanel到www目錄,這邊直接按y在按enter。

接著會詢問你是否要允許面板啟用SSL,這邊選啥都沒關係,之後面板安裝完成以後也能透過面板的後台進行安裝,輸入選項按下enter後就會自動開始進行安裝了。

安裝完成後會出現以下畫面,告訴你面板後台的連線網址跟帳號密碼,網址後墜跟帳號密碼都是隨機產生所以請記好,之後進面板可以自己在修改,不過每修改一項後會自動登出要你用新的設定登入,所以千萬要記好初始化設定在慢慢修改。

在瀏覽器網址列輸入上面系統提供給你的網址,需要注意的是如果在之前安裝步驟中,有選擇安裝panel ssl的這邊的網址記得是https喔!輸入網址後就會看到面板的登入畫面,輸入一開始系統自動產生的隨機帳密登入面板。

登入面板後系統會自動跳出一個安裝相關系統的畫面,詢問你要安裝LNMP或是LAMP的環境,由於我們是要用Nginx做反向代理,因此在這邊要選擇LNMP,相關的組件可以自己選擇想要的版本,這邊就暫時都使用預設的版本進行安裝,當版本都確定後直接點選下方的One-click按鈕。

按下One-click按鈕後系統會跳出一個訊息視窗,顯示目前相關軟體組建的安裝進度,安裝這些組件需要一些時間,就等他慢慢安裝完成。

等到全部安裝的軟體組件都跑到Message list的時候就是都安裝完成了。

接下來切換到website頁面新增一個網站。

再新增網站的部分輸入網站網址以及其他相關設定後,直接按下Submit建立網站。

接下來就需要開始下指令安裝net core相關套件,首先將aapanel切換到Terminal頁面,在這個頁面我們可以直接下Linux的相關指令,首次進入時因為沒有登入資訊所以先輸入一開始登入ubuntu的帳密。

登入後先安裝Microsoft package repository請輸入以下指令。

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

接下來安裝net core的rumtime套件這邊我們安裝的是net core 7

sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-7.0

接著切換到Files頁面並將目錄切換到剛剛新建網站的目錄,並將一些系統預設的文件刪除,畢竟這些檔案我們自己建立的net core就會有相關文件設定。

刪除預設文件以後將我們的net core網站文件上傳到網站目錄當中

檔案上傳以後再回到website頁面去設定網站的Nginx設定,先將jpg跟css的設定刪除。

然後添加Nginx的反向代理設定相關設定如下,輸入完記得按下下方的Save存檔。

location / {
    proxy_pass http://0.0.0.0:5000;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

接下來切換到Files頁面並將工作目錄切換到/etc/systemd/system,並建立一個空白文件將其命名為yourapp.service並在該文件輸入以下內容後存檔。

[Unit]
# 替換成自己取的服務名稱
Description=example service
[Service]
# 替換成自己的網站目錄
WorkingDirectory=/www/wwwroot/aaa.aaa
# 替換成自己的dll
ExecStart=/usr/share/dotnet/dotnet /www/wwwroot/aaa.aaa/WebApplication1.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
# 替換成自己要在LOG中顯示的識別名稱
SyslogIdentifier=example-service
User=www
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target

回到Terminal頁面輸入下面指令啟用服務跟運行服務

sudo systemctl enable yourapp.service
sudo systemctl start yourapp.service

再輸入下方指令確認服務是否運行

sudo systemctl status yourapp.service

輸入確認狀態指令後看到以下畫面中Active顯示running就表示網站已經在運行。

輸入網址後就可以看到已經運行起來的網站了。

這邊要注意的是net core版本,這邊安裝的是net core7.0所以你的相關程式必須是7.0的,如果你的應用程式是使用net core 6.0進行開發,那安裝runtime時就需要安裝6.0版本,安裝指令都一樣只需要把7.0改成6.0,不然的話6.0應用程式會無法正常啟動。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *