ASP.NET Core 2.0 MVC 发布部署--------- CentOS7 X64 具体操作
.Net Core 部署到 CentOS7 64 位系统中的步骤
1、安装工具
1、apache
2、.Net Core(dotnet-sdk-2.0)
3、Supervisor(进程管理工具,目的是服务器一开机就启动服务器 上发布的ASP.NET Core Web网站)
2、安装apache
在安装apache之前,要先做一件事就是,把当前登录用户权限设置为root相同的权限,否则 在执行sudo命令时会报 “不在 sudoers 文件中。此事将被报告”。
当前登录用户权限设置为root相同的权限操作如下:
su root
sudo vim /etc/sudoers
在vim命令调出的vim编辑窗口中,找到如下行:
root ALL=(ALL:ALL) ALL
在下面添加你自己的账号,如 linjie ALL=(ALL:ALL) ALL,添加以后的文件如下:
root ALL=(ALL:ALL) ALL
linjie ALL=(ALL:ALL) ALL
点击Esc 输入:再输入wq! 这样就可以保存退出了,之后
su linjie 切换到自己的账号,就可以使用sudo 执行命令了。
上面设置完成后,下面安装apache(三步操作)
1、在终端中输入命令: yum install httpd(也可以不通过上面的授权,直接使用管理员的进行安装软件 sudo yum install httpd(前面加上sudo 使用管理员权限进行操作))
2、配置ServerName(可以省略) vi /etc/httpd/conf/httpd.conf
如果没有域名,则:ServerName localhost:80 或者 ServerName 127.0.0.1:80
3、Apache服务添加到 开机自启中
systemctl start httpd
systemctl enable httpd
在浏览器里输入http://localhost或者是http://127.0.0.1,如果看 到了Testing 123..,那就说明Apache就成功的安装了。
Linux系统中服务的配置文件,以及存放位置如下:
服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log
主配置文件: vim /etc/httpd/conf/httpd.conf
在httpd服务程序主配置文件中最为常用的参数包括有:
ServerRoot 服务目录
ServerAdmin 管理员邮箱
User 运行服务的用户
Group 运行服务的用户组
ServerName 网站服务器的域名
DocumentRoot 网站数据目录
Listen 监听的IP地址与端口号
DirectoryIndex 默认的索引页页面
ErrorLog 错误日志文件
CustomLog 访问日志文件
Timeout 网页超时时间,默认为300秒.
Include 需要加载的其他文件
从上面表格中可以得知DocumentRoot正是用于定义网站数据保存路径的参数,其参数的默认值是把网站数据存放到了/var/www/html目录中的,而网站首页的名称应该叫做index.html,因此可以手动的向这个目录中写入一个文件来替换掉httpd服务程序的默认网页。
3、安装.NET Core 2.0
1、注册Linux系统(Cent OS 7)
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'
2、更新安装包,安装.NET Core
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1.4
4、查看一下 dotnet --version 结果是 2.1.4 则说明安装成功。
(注:简单的应用程序项目文件夹,使用以下命令启动网站,只要打开发布网站的文件,右键终端中打开 dotnet run或者dotnet xx.dll,即可运,xx为网站的名称)
sudo dotnet xxx.dll
然后就可以在浏览器打开使用实际IP和端口访问(mmps的端口设置的是8080)
注意这个过程可能会遇到的问题:
问题1
如果外网无法访问8080端口(:这个端口是程序中的访问端口)的话,设置如下
1、sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
2、firewall-cmd --reload
问题2
如果打开浏览器,无法打开的话,就是网络问题,
1、查看详细信息
2、点击 身份 -- 勾选 自动连接,点击应用。
到此位置基本就实现了通过IP访问,然而每次关机以后,重新开机都需要去手动的启动发布的网站项目才能访问,因此我们下面使用Supervisor托管自动启动网站服务操作,保证每次只要一开机,网站就可以正常。
3、安装Supervisor(设置开机自动设置网站)
1、右键在终端中打开,输入安装命令:
安装python的supervisor
yum search setuptools
sudo yum install -y python-setuptools.noarch
easy_install supervisor
2、安装完成之后,创建相关文件,
第一种:
创建supervisor配置文件目录
sudo mkdir /etc/supervisor
创建主配置文件
echo_supervisord_conf >/etc/supervisor/supervisord.conf
如果提示权限不够,
su root
echo_supervisord_conf >/etc/supervisor/supervisord.conf
创建项目配置文件目录conf.d
cd /etc/supervisor/
sudo mkdir conf.d
在文件目录conf.d下创建创建项目配置文件(开机启动的网站)
sudo vim conf.d/MmPSCore.conf (编辑完成后 ,按Esc,在按:冒号,之后再输入wq!,即可以退出)
第二种:
echo_supervisord_conf > supervisord.conf
sudo mkdir /etc/supervisor
sudo mkdir /etc/supervisor/conf.d
sudo cp supervisord.conf /etc/supervisor/supervisord.conf
注:1、supervisord.conf中的 /tmp换成相应的/var/run或者 /var/log
(使用sudo chmod a+w etc/supervisor/supervisord.conf 就可以打开进行编辑了,/tmp换成相应的/var/run或者 /var/log替换之后,保存)
2、把supervisord.conf中的
;[include]节点处
;files = relative/directory/*.ini
换成
[include]
files = /etc/supervisor/conf.d/*.conf
3、配置文件,取名为 MmPSCore.conf (当前项目的名称)
sudo touch /etc/supervisor/conf.d/MmPScore.conf (自定义项目名称,本项目是MmPScore.conf)
打开MmPSCore.conf写入如下命令(如果没有权限,
请如下方法
sudo chmod a+w /etc/supervisor/conf.d/MmPScore.conf(命令启动编辑)
命令内容如下:
[program:MmPSCore]
command=dotnet MmPSCore.dll #要执行的命令(发布网站执行文件)
directory=/home/xx/MmPSCore#命令执行的目录(发布网站文件路径)environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
user=www-data #进程执行的用户身份(可能需要去掉)
stopsignal=INT
autostart=true #是否自动启动
autorestart=true #是否自动重启
startsecs=1 #自动重启间隔
user=root ; #进程执行的用户身份(可以不写)
stderr_logfile=/var/log/TestCore.err.log #标准错误日志
stdout_logfile=/var/log/TestCore.out.log #标准输出日志
//注:#后面的内容为注释,在保存上面的文件代码时,记得删除
上述操作完后,保存,
运行supervisord,查看是否生效,执行以下命令:
supervisord -c /etc/supervisor/ supervisord.conf (启动)
ps -ef | grep ProjectName
返回
root 27007 27006 1 13:21 ? 00:00:02 dotnet ProjectName.dll
root 27026 26810 0 13:23 pts/0 00:00:00 grep --color=auto ProjectName
表示运行成功!
如果有错误的话,建议执行下面的命令
这个两句命令很重要
sudo supervisord -c /etc/supervisor/supervisord.conf 服务端
sudo supervisorctl -c /etc/supervisor/supervisord.conf 客户端
4、配置supervisord开机启动
- 在指定目录下创建文件supervisord.service
sudo touch /usr/lib/systemd/system/supervisord.service
sudo chmod a+w usr/lib/systemd/system/supervisord.service
B.输入以下内容:
[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
保存并退出
C.执行以下命令:
systemctl enable supervisord
提示:
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
D.验证是否为开机启动:
systemctl is-enabled supervisord
提示:
enabled
表示设置成功!
至此,创建supervisor守护进程完毕。
5、测试
接下来重启机器,在浏览器中输入IP地址,看看网站是否跟随开机自动运行。
ASP.NET Core 2.0 MVC 发布部署--------- CentOS7 X64 具体操作的更多相关文章
- ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- ASP.NET Core 2.0 MVC 发布部署--------- IIS 具体操作
.Net Core 部署到 IIS系统中的步骤 一.IIS 配置 启用 Web 服务器 (IIS) 角色并建立角色服务. 1.Windows Ddesktop 桌面操作系统(win7及更高版本) 导航 ...
- ASP.NET Core 2.0 MVC 发布部署--------- SUSE 16 Linux Enterprise Server 12 SP2 X64 具体操作
.Net Core 部署到 SUSE 16 Linux Enterprise Server 12 SP2 64 位中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk ...
- ASP.NET Core 2.0 MVC 发布部署--------- Ubuntun 16.04 X64 具体操作
.Net Core 部署到Ubuntu 16.04 中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是服务 ...
- ASP.NET Core 2.0 MVC 发布部署--------- linux安装.NET CORE SDK具体操作链接以及操作总细节
具体链接:https://www.microsoft.com/net/learn/get-started/linuxubuntu 如下图:
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- 无法下载apk等格式的文件的解决方案---ASP .NET Core 2.0 MVC 发布到IIS上以后无法下载apk等格式的文件的解决方案
ASP .NET Core MVC 发布到 IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...
- ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件
ASP .NET Core MVC 发布到 IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...
随机推荐
- Fdisk 分区详解
Fdisk 分区详解 来源 http://blog.itpub.net/20674423/viewspace-722812/ 1. 通过Fdisk查看系统分区详细信息: Fdi ...
- 【刷题】BZOJ 2142 礼物
Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E 心目中的重要性不同,在小E心中分量越重的人,收到的礼物会越多.小E从商店 ...
- Java发送http get/post请求,调用接口/方法
由于项目中要用,所以找了一些资料,整理下来. GitHub地址: https://github.com/iamyong 转自:http://blog.csdn.net/capmiachael/a ...
- NOIP2017 Day2 T3 列队(treap)
可以直接用treap上大模拟...n+1个treap维护n行的前m-1个点和最后一列. 需要支持删除一个点或者一段区间,而空间并不支持存下所有的点的时候,可以用一个点代替一个区间,记录区间首项的值和区 ...
- [ZJOI2015]幻想乡战略游戏——动态点分治
[ZJOI2015]幻想乡战略游戏 带修改下,边点都带权的重心 随着变动的过程中,一些子树内的点经过会经过一些公共边.考虑能不能对这样的子树一起统计. 把树上贡献分块. 考虑点分治算法 不妨先把题目简 ...
- Tornado----自定义异步非阻塞Web框架:Snow
Python的Web框架中Tornado以异步非阻塞而闻名.本篇将使用200行代码完成一个微型异步非阻塞Web框架:Snow. 一.源码 本文基于非阻塞的Socket以及IO多路复用从而实现异步非阻塞 ...
- 图像处理之Canny边缘检测
http://blog.csdn.net/jia20003/article/details/41173767 图像处理之Canny 边缘检测 一:历史 Canny边缘检测算法是1986年有John F ...
- 洛谷P2633/bzoj2588 Count on a tree (主席树)
洛谷P2633/bzoj2588 Count on a tree 题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K ...
- CSU 多校训练第二场 J Pinemi Puzzles
传送门:http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2279 题意: 代码: #include <set> #incl ...
- windows环境下封装条件wait和signal
linux 环境有提供好的pthread_cond_wait() 和 phread_signal().pthread_broadcast() windows需要自己封装,利用semophore控制线程 ...