一、安装.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] name=packages-microsoft-com-prod baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod enabled=1 gpgcheck=1 gpgkey=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即可