ASP.Net Core 运行在Linux(CentOS)
Linux Disibutaion:CentOS 7.1
Web Server:Apache、Kestrel
1、安装.net core
1 2 3 4 | sudo yum install libunwind libicu curl -sSL -o dotnet. tar .gz https: //go .microsoft.com /fwlink/ ?LinkID=835019 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet. tar .gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin |
2、新建asp.net core mvc项目
1 2 3 4 5 6 7 8 9 10 11 | #新建文件夹hwapp mkdir hwapp #进入hwapp文件夹 cd hwapp #新建asp.net core mvc项目 dotnet new -t web #还原.net core nuget包 dotnet restore |
3、安装npm,gulp,bower
1 2 3 4 5 6 7 8 | wget https: //nodejs .org /dist/v6 .9.1 /node-v6 .9.1-linux-x64. tar .xz xz -d node-v6.9.1-linux-x64. tar .xz #安装npm sudo tar --strip-components 1 -xvf node- v * -C /usr/local #安装gulp sudo npm install gulp -g #安装bower sudo npm install bower -g |
4、发布项目
1 2 3 | cd /home/ $1 /hwapp #发布项目 dotnet publish -c Release |
5、安装并配置Apache
1 2 3 4 | #更新 sudo yum update -y #安装apache sudo yum -y install httpd mod_ssl |
进入/etc/httpd/conf.d目录,添加hwapp.conf文件,并将如下内容写入文件中
1 2 3 4 5 6 7 | <VirtualHost *:80> ProxyPreserveHost On ProxyPass / http: //127 .0.0.1:5000/ ProxyPassReverse / http: //127 .0.0.1:5000/ ErrorLog /var/log/httpd/hwapp-error .log CustomLog /var/log/httpd/hwapp-access .log common < /VirtualHost > |
检查配置文件是否正确,如果看到"Syntax [OK]"则说明配置正确
1 | sudo service httpd configtest |
重启Apache
1 2 | sudo systemctl restart httpd sudo systemctl enable httpd |
按理来说,到这一步应该已经可以访问我们部署的网站了,但是在CentOS下有一个细节需要注意:SELinux的安全策略导致网站无法访问。
1 2 3 4 5 6 7 8 9 | #查看selinux状态 # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. getenforce #这里我们需要把SELinux的值修改为disabled vi /etc/selinux/config |
修改完SELinux,重启虚机
6、安装Supervisor
1 2 | yum install python-setuptools easy_install supervisor |
配置Supervisor
1 2 3 4 | mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord .conf #指定配置文件 supervisord -c /etc/supervisor/supervisord .conf |
指定守护的程序配置
1 | vi /etc/supervisor/supervisord .conf |
在supervisord.conf最后加入
1 2 | [include] files=conf.d/*.conf |
进入目录/usr/lib/systemd/system/,新建一个“supervisord.service
”文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # dservice for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [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 |
执行命令
1 2 | systemctl enable supervisord systemctl start supervisord |
配置守护进程,进入目录/etc/supervisor/conf.d/,新建文件“hwapp.conf”
1 2 3 4 5 6 7 8 9 10 | [program:hwapp] command = /usr/local/bin/dotnet /var/hwapp/hwapp .dll --server.urls:http: // *:5000 directory= /var/hwapp/ autostart= true autorestart= true stderr_logfile= /var/log/hwapp .err.log stdout_logfile= /var/log/hwapp .out.log environment=ASPNETCORE_ENVIRONMENT=Production user=azureuser stopsignal=INT |
重新加载配置
1 2 3 | sudo supervisorctl reload sudo supervisord sudo supervisorctl |
查看是否被守护进程拉起
1 | ps -ef| grep dotnet |
部署成功
QQ群:150417854
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件