一、安裝.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即可