天天看點

ASP .Net Core系統部署到SUSE Linux Enterprise Server 12 SP3 64 具體方案

.Net Core 部署到 SUSE Linux Enterprise Server 12 SP3 64 位中的步驟

1、安裝工具

1、apache

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

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

2、安裝apache

安裝apache,在指令行終端中輸入一下指令:

 sudo zypper in apache

(注意這個與ubuntun中的添加不一樣,

buntun中sudo apt-get install apache2 )

(注:檢視apache 版本 sudo apachectl -v)

安裝完成,開始啟動

重新開機apache服務(設定兩項,1是可用,2是啟動)

可用:sudo systemctl enable apache2.service

(注意這個與ubuntun中的添加不一樣,

buntun中sudo /etc/init.d/apache2 restart )

啟動:sudo systemctl start apache2.service

在浏覽器裡輸入http://localhost或者是http://127.0.0.1,如果看 到了It works!,那就說明Apache就成功的安裝了,Apache的預設文檔根目錄是在SUSE上的/srv/www/htdocs/目錄 ,如果出現403頁面拒絕通路錯誤,原因是沒有index.html導緻,添加一個index.html檔案即可,内容如下

<html>

<head>

</head>

<body>

It works!

</body>

</html>

添加index.html檔案之後,重新重新整理浏覽器,顯示添加内容ok。

注意:添加檔案需要權限,是以通過

指令 sudo chmod a+w /srv/www/htdocs/ 授權,這樣就可以添加index.html初始頁了,

備注:配置檔案是/etc/apache2/httpd.conf。

配置存儲在的/etc/apache2/conf.d /目錄。

3、安裝.NET Core 2.0

1、注冊Linux系統(Ubuntu and Debian based systems,不同的系統 操作不一樣)

​​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/zypp/repos.d/dotnetdev.repo'

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

sudo zypper update

sudo zypper install libunwind libicu

sudo zypper install dotnet-sdk-2.1.4

注意安裝過程中出現解決方案選擇,選擇 2 。

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

(注:簡單的應用程式項目檔案夾,使用以下指令啟動網站,隻要打開釋出網站的檔案,右鍵終端中打開 dotnet run或者dotnet xx.dll,即可運,xx為網站的名稱)

sudo dotnet xxx.dll

然後就可以在浏覽器打開localhost:5000(5000為預設端口,如果有修改,請使用實際IP和端口通路(mmps的端口設定的是8080))

注意:如果外網無法通路8080端口的話,設定如下

1、sudo chmod a+w /etc/sysconfig/SuSEfirewall2 #授編輯權限

(注意:這裡授權,編輯儲存之後,步驟3的下面一定要取消編輯權限,sudo chmod a-w /etc/sysconfig/SuSEfirewall2,

否則重新開機無效會提示:Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced  )

2、vi SuSEfirewall2 或者直接打開SuSEfirewall2檔案進行編輯

3、編輯内容:在檔案SuSEfirewall2中找到FW_SERVICES_EXT_TCP,在其後面加上服務名或者是服務對應的端口,如SSH,

FW_SERVICES_EXT_TCP=”ssh” 或 FW_SERVICES_EXT_TCP=”22″ 或者FW_SERVICES_EXT_TCP=”8080″,如果要開放多個端口則為 FW_SERVICES_EXT_TCP=”8080 89″ #多個端口用空格分開,儲存之後退出。

4、取消授權(如果沒有取消編輯權限,重新開機無效會提示:Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced)

sudo chmod a-w /etc/sysconfig/SuSEfirewall2 

5、重新開機防火牆,以使配置生效,

  sudo rcSuSEfirewall2 restart

或者執行下面的SuSEfirewall2 stop和SuSEfirewall2 start兩句也可以

SuSEfirewall2 stop 

        結果: 

Firewall rules unloaded.

        執行 b:SuSEfirewall2 start

        結果:  

     <38>May 16 14:55:54 SuSEfirewall2[10914]: Setting up rules from /etc/sysconfig/SuSEfirewall2 ...

                   <38>May 16 14:55:55 SuSEfirewall2[10914]: Firewall rules successfully set

就實作了通過IP通路,然而每次關機以後,重新開機都需要去手動的啟動釋出的網站項目才能通路,是以我們下面使用Supervisor托管自動啟動網站服務操作,保證每次隻要一開機,網站就可以正常。

3、安裝Supervisor(設定開機自動設定網站)

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

安裝python

sudo zypper in python-pip

sudo pip install -U setuptools

pip install supervisor

(注意:如果上述方法不能安裝的話,可以使用下面的方法安裝

1.1 pip下載下傳

wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

1.2 pip安裝

tar -xzvf pip-1.5.4.tar.gz

cd pip-1.5.4

python setup.py install

1.3 pip安裝軟體

 pip 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或者

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

如下圖

ASP .Net Core系統部署到SUSE Linux Enterprise Server 12 SP3 64 具體方案

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 #标準錯誤日志(TestCore.err.log這個檔案沒有,需要手動建立)

stdout_logfile=/var/log/TestCore.out.log #标準輸出日志(TestCore.out.log這個檔案沒有,需要手動建立)

注:#後面的内容為注釋,在儲存上面的檔案代碼時,記得删除

上述操作完後,儲存,

運作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開機啟動

  1. 在指定目錄下建立檔案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位址,看看網站是否跟随開機自動運作。