【Core】.NET Core2.0 部署在Linux


一、安裝.NET  Core SDK 在CentOS上

1.右鍵打開命令行

 

2.為了安裝.NET,需要注冊微軟簽名密鑰和添加微軟相關的支持。這個操作每台機器只能做一次。

Add the dotnet product feed(其實就是向微軟提交投名狀,表示我這台服務器要用core),注意:先檢測下是否能聯網; 
打開命令行,執行以下命令:

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'

 

 

 

3.安裝 .NET Core SDK

命令一:sudo yum update

  需要一段時間,而且會提示是否繼續,輸入y然后回車。

  如果遇到提示another app is currently holding the yum lock;waiting for it to exit,表示yum正在被使用,通過以下命令強制關閉:rm -f /var/run/yum.pid

命令二:sudo yum install libunwind libicu


命令三:sudo yum install dotnet-sdk-2.0.2

            (3.0版本的sudo yum install dotnet-sdk-3.0)

 

4.使用命令 dotnet --info 查看是否安裝成功

出現下面界面則說明安裝sdk成功

 

二、部署網站

1.創建文件夾

mkdir core

cd core

 

 

2.我這里使用的是虛擬機,就直接將生成好的文件拷到core目錄下,然后執行命令(dotnet 項目名稱.dll)

 

3.將發布的代碼復制到core文件夾

 發布:dotnet NetCore2Mvc.dll

 報錯:An assembly specified in the application dependencies manifest (NetCore2.0.Mvc.deps.json) was not found

 

出現這個錯誤,是因為未安裝dotnet-hosting-2.0.x (對應上圖中的2.0.8)

使用yum 安裝一下:sudo yum install dotnet-hosting-2.0.8

 

4.安裝完成,發布成功!

 

5.瀏覽網站

 

注意:.Net Core 默認創建的項目部署完成以后,只能在本機內訪問,外部通過IP是打不開的,可以通過配置Nginx實現。也可以通過修改Program.cs

WebHost.CreateDefaultBuilder(args)
                .UseKestrel()
                .UseUrls("http://*:5000")
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

 

 

 UseUrls(http://*:5000即可實現通過IP訪問程序。

 

三、Supervisor為 dotnet 創建守護進程

關閉shell后保持程序繼續運行

1.安裝 yum install supervisor

2.在etc文件夾下新建文件夾supervisor

mkdir /etc/supervisor

3.在supervisor文件夾下新建文件夾conf.d

mkdir /etc/supervisor/conf.d

4.生成supervisord.conf配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

5.定位到文件夾下修改配置文件:

cd /etc/supervisor

vim  supervisord.conf

修改前:

 點擊a或i進入修改模式,修改后:

然后按esc  鍵入":wq" 回車保存退出

6.本地新建core3web.conf

[program:core3web]
command=dotnet Core3Web.dll
directory=/netpublish/coreweb
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/core3web.err.log
stdout_logfile=/var/log/core3web.out.log

說明:

command= 要執行的命令
directory= 命令執行的目錄
environment= 環境變量
user= 進程執行的用戶身份
stopsignal=INT
autostart= 是否自動啟動
autorestart= 是否自動重啟
startsecs= 自動重啟間隔
stderr_logfile= 標准錯誤日志
stdout_logfile= 標准輸出日志

上傳到自己新建的文件夾conf.d目錄下

在文件夾var/log/ 創建core3web.err.log和core3web.out.log

7.運行supervisord,查看是否生效

supervisord -c /etc/supervisor/supervisord.conf

8.查看進程:

ps -ef | grep dotnet

 

9.守護進程已創建,現在關閉命令窗口也可以訪問自己的網站了。

 

10.界面管理

  • 10.1鍵入命令
# systemctl enable supervisord.service
# systemctl start supervisord.service
# systemctl status supervisord.service

  • 10.2修改supervisord.conf配置文件

默認是被注釋的(分號代表注釋)

執行這個文件夾下的conf文件

 ins鍵 修改后  按esc  鍵入:wq保存退出 修改后

  • 10.3修改后重新加載配置文件
supervisorctl reload

  • 10.4訪問:9001

 如果需要用戶名賬號登錄把注釋去掉就行了

 

新增了一個java項目

新增conf文件

[program:SpringBootDemo]
command=java -jar springbootdemo-0.0.1-SNAPSHOT.jar --server.port=7890
directory=/javapublish/springdemo1
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/core3web.err.log
stdout_logfile=/var/log/core3web.out.log

 

reload即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM