ASP .Net Core系統部署到 CentOS7 64 具體方案

來源:互聯網
上載者:User
ASP .Net Core系統部署到 CentOS7 64 具體方案 .Net Core 部署到 CentOS7 64 位系統中的步驟

1、安裝工具

1、apache

2、.Net Core(dotnet-sdk-2.0)

3、Supervisor(進程管理工具,目的是伺服器一開機就啟動伺服器 上發布的ASP.NET Core Web網站)

2、安裝apache

   在安裝apache之前,要先做一件事就是,把當前登入使用者權限設定為root相同的許可權,否則 在執行sudo命令時會報 “不在 sudoers 檔案中。此事將被報告”。

兩種方法解決許可權問題

1、第一種方式

當前登入使用者權限設定為root相同的許可權操作如下:

su root

sudo vim /etc/sudoers

在vim命令調出的vim編輯視窗中,找到如下行:

root    ALL=(ALL:ALL) ALL  

在下面添加你自己的帳號,如 linjie ALL=(ALL:ALL) ALL,添加以後的檔案如下:

root    ALL=(ALL:ALL) ALL

linjie ALL=(ALL:ALL) ALL

點擊Esc 輸入:再輸入wq。 這樣就可以儲存退出了,之後

su linjie 切換到自己的帳號,就可以使用sudo 執行命令了。

2、第一種方式 直接使用sudo

上面設定完成後,下面安裝apache(三步操作)

1、在終端中輸入命令: yum install httpd或(sudo yum install httpd)

2、配置ServerName(可以省略)  vi /etc/httpd/conf/httpd.conf

如果沒有網域名稱,則:ServerName localhost:80 或者 ServerName 127.0.0.1:80

 3、Apache服務添加到 開機自啟中

systemctl start httpd

systemctl enable httpd

在瀏覽器裡輸入http://localhost或者是http://127.0.0.1,如果看 到了Testing  123..,那就說明Apache就成功的安裝了。

Linux系統中服務的設定檔,以及存放位置如下:

服務類別目錄 /etc/httpd

主設定檔 /etc/httpd/conf/httpd.conf

網站資料目錄 /var/www/html

訪問日誌 /var/log/httpd/access_log

錯誤記錄檔 /var/log/httpd/error_log

主設定檔: vim /etc/httpd/conf/httpd.conf

在httpd服務程式主設定檔中最為常用的參數包括有:

ServerRoot 服務類別目錄

ServerAdmin 管理員郵箱

User 運行服務的使用者

Group 運行服務的使用者組

ServerName 網站伺服器的網域名稱

DocumentRoot 網站資料目錄

Listen 監聽的IP地址與連接埠號碼

DirectoryIndex 預設的索引頁頁面

ErrorLog 錯誤記錄檔檔案

CustomLog 訪問記錄檔

Timeout 網頁逾時時間,預設為300秒.

Include 需要載入的其他檔案

從上面表格中可以得知DocumentRoot正是用於定義網站資料儲存路徑的參數,其參數的預設值是把網站資料存放到了/var/www/html目錄中的,而網站首頁的名稱應該叫做index.html,因此可以手動的向這個目錄中寫入一個檔案來替換掉httpd服務程式的預設網頁。

3、安裝.NET Core 2.0

1、註冊Linux系統(Cent OS 7)

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

 

sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

2、更新安裝包,安裝.NET Core

sudo yum update 

sudo yum install libunwind libicu

sudo yum install dotnet-sdk-2.1.4

註:上面的註冊和安裝可以參考

https://www.microsoft.com/net/learn/get-started/linux/centos

4、查看一下 dotnet --version  結果是  2.1.4 則說明安裝成功。

   (註:簡單的應用程式專案檔夾,使用以下命令啟動網站,只要開啟發布網站的檔案,右鍵終端中開啟dotnet run或者dotnet xx.dll,即可運,xx為網站的名稱)

sudo dotnet xxx.dll

然後就可以在瀏覽器開啟使用實際IP和連接埠訪問(mmps的連接埠設定的是8080) 

注意這個過程可能會遇到的問題:

問題1

如果外網無法訪問8080連接埠(:這個連接埠是程式中的訪問連接埠)的話,設定如下

1、sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

2、firewall-cmd --reload

問題2

如果開啟瀏覽器,無法開啟的話,就是網路問題,

1、查看詳細資料

 

2、點擊 身份 -- 勾選 自動連接,點擊應用。

 

到此位置基本就實現了通過IP訪問,然而每次關機以後,重新開機都需要去手動的啟動發布的網站項目才能訪問,因此我們下面使用Supervisor託管自動啟動網站服務作業,保證每次只要一開機,網站就可以正常。
3、安裝Supervisor(設定開機自動化佈建網站)

1、右鍵在終端中開啟,輸入安裝命令:

安裝python的supervisor

yum search setuptools

sudo yum install -y python-setuptools.noarch

sudo easy_install supervisor

2、安裝完成之後,建立相關檔案,

      第一種:

建立supervisor設定檔目錄

sudo mkdir  /etc/supervisor

建立主設定檔

echo_supervisord_conf >/etc/supervisor/supervisord.conf  

如果提示許可權不夠,

su root

echo_supervisord_conf >/etc/supervisor/supervisord.conf

建立項目設定檔目錄conf.d

cd /etc/supervisor/

sudo mkdir conf.d       

在檔案目錄conf.d下建立建立項目設定檔(開機啟動的網站) 

sudo vim conf.d/MmPSCore.conf (編輯完成後 ,按Esc,在按:冒號,之後再輸入wq。,即可以退出)

第二種:

echo_supervisord_conf > supervisord.conf

sudo  mkdir /etc/supervisor

sudo  mkdir /etc/supervisor/conf.d

sudo cp supervisord.conf  /etc/supervisor/supervisord.conf

註:1、supervisord.conf中的 /tmp換成相應的/var/run或者 /var/log

(使用sudo chmod a+w etc/supervisor/supervisord.conf 就可以開啟進行編輯了,/tmp換成相應的/var/run或者/var/log替換之後,儲存)

2、把supervisord.conf中的

;[include]節點處

;files = relative/directory/*.ini

換成

[include]

files = /etc/supervisor/conf.d/*.conf

 

3、設定檔,取名為 MmPSCore.conf (當前項目的名稱)

sudo touch /etc/supervisor/conf.d/MmPScore.conf (自訂項目名稱,本項目是MmPScore.conf)

開啟MmPSCore.conf寫入如下命令(如果沒有許可權,

請如下方法

sudo chmod a+w /etc/supervisor/conf.d/MmPScore.conf(命令啟動編輯)

 

命令內容如下:

[program:MmPSCore]

command=dotnet MmPSCore.dll #要執行的命令(發布網站執行檔案)

directory=/home/xx/MmPSCore#命令執行的目錄(發布網站檔案路徑)environment=ASPNETCORE__ENVIRONMENT=Production #環境變數

user=www-data #進程執行的使用者身份(可能需要去掉)

stopsignal=INT

autostart=true #是否自動啟動

autorestart=true #是否自動重啟

startsecs=1 #自動重啟間隔

user=root ; #進程執行的使用者身份(可以不寫)

stderr_logfile=/var/log/TestCore.err.log #標準錯誤日誌

stdout_logfile=/var/log/TestCore.out.log #標準輸出日誌

 //註:#後面的內容為注釋,在儲存上面的檔案代碼時,記得刪除

重新載入配置以後的設定

sudo supervisord -c /etc/supervisor/supervisord.conf 服務端

sudo supervisorctl -c /etc/supervisor/supervisord.conf 用戶端

重啟

supervisor服務

sudo service supervisor stop

sudo service supervisor start

 

上述操作完後,儲存,

運行supervisord,查看是否生效,執行以下命令:

配置好以後,需要重新載入一下配置

supervisord -c /etc/supervisor/ supervisord.conf (啟動)

ps -ef | grep ProjectName

返回

root 27007 27006  1 13:21 ?  00:00:02 dotnet ProjectName.dll

root 27026 26810 0 13:23 pts/0 00:00:00 grep --color=auto ProjectName

表示運行成功。

如果有錯誤的話,建議執行下面的命令

這個兩句命令很重要

sudo supervisord -c /etc/supervisor/supervisord.conf 服務端

sudo supervisorctl -c /etc/supervisor/supervisord.conf 用戶端

 

4、配置supervisord開機啟動 在指定目錄下建立檔案supervisord.service

        sudo touch /usr/lib/systemd/system/supervisord.service

        sudo chmod a+w /usr/lib/systemd/system/supervisord.service

B.輸入以下內容:

[Unit]

Description=Supervisor daemon

 

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf

ExecStop=/usr/bin/supervisorctl shutdown

ExecReload=/usr/bin/supervisorctl reload

KillMode=process

Restart=on-failure

RestartSec=42s

 

[Install]

WantedBy=multi-user.target

 

儲存並退出

C.執行以下命令:

systemctl enable supervisord

提示:

Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.

D.驗證是否為開機啟動:

systemctl is-enabled supervisord

提示:

enabled

表示設定成功。

至此,建立supervisor守護進程完畢。

5、測試

接下來重啟機器,在瀏覽器中輸入IP地址,看看網站是否跟隨開機自動運行。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.