ASP.Net Core 运行在Linux(CentOS)
Linux Disibutaion:CentOS 7.1
Web Server:Apache、Kestrel
1、安装.net core
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项目
#新建文件夹hwapp
mkdir hwapp #进入hwapp文件夹
cd hwapp #新建asp.net core mvc项目
dotnet new -t web #还原.net core nuget包
dotnet restore
3、安装npm,gulp,bower
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、发布项目
cd /home/$1/hwapp
#发布项目
dotnet publish -c Release
5、安装并配置Apache
#更新
sudo yum update -y
#安装apache
sudo yum -y install httpd mod_ssl
进入/etc/httpd/conf.d目录,添加hwapp.conf文件,并将如下内容写入文件中
<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]"则说明配置正确
sudo service httpd configtest
重启Apache
sudo systemctl restart httpd
sudo systemctl enable httpd
按理来说,到这一步应该已经可以访问我们部署的网站了,但是在CentOS下有一个细节需要注意:SELinux的安全策略导致网站无法访问。
#查看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
yum install python-setuptools
easy_install supervisor
配置Supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
#指定配置文件
supervisord -c /etc/supervisor/supervisord.conf
指定守护的程序配置
vi /etc/supervisor/supervisord.conf
在supervisord.conf最后加入
[include]
files=conf.d/*.conf
进入目录/usr/lib/systemd/system/,新建一个“supervisord.service”文件
# 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
执行命令
systemctl enable supervisord
systemctl start supervisord
配置守护进程,进入目录/etc/supervisor/conf.d/,新建文件“hwapp.conf”
[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
重新加载配置
sudo supervisorctl reload
sudo supervisord
sudo supervisorctl
查看是否被守护进程拉起
ps -ef|grep dotnet
部署成功

ASP.Net Core 运行在Linux(CentOS)的更多相关文章
- ASP.Net Core 运行在Linux(Ubuntu)
这段时间一直在研究asp.net core部署到linux,今天终于成功了,这里分享一下我的部署过程. Linux Disibutaion:Ubuntu 14.04 Web Server:nginx. ...
- 在Linux安装ASP.NET Core运行时环境
我使用的是Centos7 ,其它的Linux请参考微软文档 微软官方介绍文档: https://www.microsoft.com/n ...
- ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
一.前言 最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持 ...
- .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)
在.NET Core部署到linux(CentOS)最全解决方案,常规篇一文,我们详细讲解了传统的.NET Core部署到Linux服务器的方法,学到了Linux在虚拟机下的安装.Xshell,Xft ...
- .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
在前两篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) 我们对. ...
- ASP.NET Core MVC 在linux上的创建及发布
前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...
- ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行 核心框架 ASP.NET Core APP 创建与运行 总结 之前两篇文章简析.NET Core 以及与 .NET Framew ...
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...
- Install .NET Core SDK on Linux CentOS / Oracle x64 | .NET
原文:Install .NET Core SDK on Linux CentOS / Oracle x64 | .NET Linux发行版 CentOS / Oracle添加dotnet产品Feed ...
随机推荐
- C语言不支持默认参数,不过可以用宏来模拟
C语言不支持默认参数,不过可以用宏来模拟: //--------------------------------------------------------------------------- ...
- Visual Studio 2008 – ASP.NET “System.Runtime.InteropServices.COMException”
The Issue When openning an existing ASP.NET project for the first time in Visual Studio 2008 it retu ...
- INPUT输入框灰体提示
INPUT输入框灰体提示 <input type="text" value='15 words limit' style="color:#999999" ...
- ACCESS-delphi向中插入一条记录报错,但ACCESS不会
问题:在DELPHI中向ACCESS中插入一条记录时,提示“插入错误”,但是取出SQL直接放在ACCESS中插入成功?答:原因是插入语句中的字段名是DELPHI的内部标示符.
- [struts2]jstl标签用法技巧
1.<c:if test="${var} != null"></c:if> 2. <c:foreach var="singleVar&quo ...
- Android 图片加载[常见开源项目汇总]
该文主要是讲一下目前有哪些使用比较多的 图片加载开源项目,并简单介绍该如果使用 以及各开源项目之间有什么区别, 我们该如何去选择适合的开源项目应用到我们的项目中? 一.Android-Universa ...
- C++学习笔记(十三):类、包和接口
看标题感觉这些术语和C++没有什么关系啊,包和接口是Java等语言加入的概念. 这篇文章是基于Java等语言的新概念(相对于C++来说的新概念)来看C++的设计思路. 类: C++中,一个文件可以包含 ...
- tomcat 虚拟目录与显示目录中文件列表
虚拟目录: 该方法推荐使用,比较简单. 在%tomcat%\conf\Catalina\localhost(该目录可能需要手工创建)下新建一个文件abc.xml,注意文件名中的abc就表示虚拟目录的名 ...
- iOS8 CLLocationManager 、CLGeocoder获取地理位置
最近在ios8.0使用CLLocationManager定位服务,发现老不能定位,查看设置菜单中的项也是处于未知状态.想起之前都有一个弹出框提示用户是否允许定位,这次一直没有出现了.原来ios8.0下 ...
- Android下pm命令详解
在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这个命令与Package有关,且非常实用.所以研究之. 0. Usage: ...