建议使用 root 管理员账户操作

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

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开机启动

  1. 在指定目录下创建文件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地址,看看网站是否跟随开机自动运行。

.Net Core 部署到 CentOS7 64 位系统中的步骤的更多相关文章

  1. 使用.NET 4.0+ 操作64位系统中的注册表

    一.64位系统中的注册表 以 LocalMachine 中的启动项为例: 64位应用的注册表位置还是在: SOFTWARE\Microsoft\Windows\CurrentVersion\Run 而 ...

  2. 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置

    原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...

  3. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功

    (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 1.下载opencv 官网http://opencv.org/下载windows版Op ...

  4. 呃,如何使 .NET 程序,在 64位 系统 中,以 32位 模式运行。

    其实最简单的方法就是在解决方案中,把平台设为 x86 就好了哈~   但是今天遇到一个第三方的软件,它调用的一个 dll 是 32位 的,可能它没有测试过在 64位 系统下运行的情况,它在编译时是按默 ...

  5. 64位系统中连接Access数据库文件的一个问题

    近日在windows 7 64位系统中编译以前写的程序,发现在连接Access数据库时总是出现异常,提示“Microsoft.Jet.OLEDB.4.0”未在本机注册,同样的代码在32位的xp系统中却 ...

  6. VS2010在64位系统中连接64位Oracle出现的问题和解决方法

    C#使用System.Data.OracleClient连接Oracle数据库.我的是window7/64位系统,装了一个64位的oralce 11G r2 客户端是64位的 用VS10调试错误信息如 ...

  7. 关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题

    最近在新公司电脑上跑以前的selenium测试框架的时候,抛出了如下的错误 出现的是ODBC Driver问题:[Microsoft][ODBC Driver Manager] Data source ...

  8. 针对Windows 64位系统中Matlab没有LED Control Activex控件的解决方法

    Win 10 64bits系统中Matlab 64位软件没有LED Control Activex控件,LED ActiveX Control控件位于Gauges Blockset模块中,而Gauge ...

  9. <linux系统c语言生成.so文件,生成64位可执行文件,在64位系统中运行32位的可执行文件>

    1.linux 系统c语言生成.o文件,---->gcc -m64 -c -fPIC test.c -o test.o2.linux 系统c语言生成.so文件,----->gcc -sha ...

随机推荐

  1. 跟我学Spring Cloud(Finchley版)-20-Spring Cloud Config-Git仓库配置详解 原

    在跟我学Spring Cloud(Finchley版)-19-配置中心-Spring Cloud Config 一节中,已实现使用Git仓库作为Config Server的后端存储,本节详细探讨如何配 ...

  2. elasticsearch 第三篇(安装篇)

    *nux下安装 在*nux下,es官方已提供编译的deb和rpm包,但是需要保证已安装安装Java虚拟环境(目前es1.6和1.7版本均可选择1.8版本java),安装步骤如下:1.下载ES deb/ ...

  3. sz与rz命令

    一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地:   与ssh ...

  4. 洛谷P1558 色板游戏

    题目背景 阿宝上学了,今天老师拿来了一块很长的涂色板. 题目描述 色板长度为L,L是一个正整数,所以我们可以均匀地将它划分成L块1厘米长的小方格.并从左到右标记为1, 2, ... L.现在色板上只有 ...

  5. git 删除远程仓库的命令

    # 删除远程仓库的命令: git branch -r -d origin/branch-name #其中这条命令必须执行,远程仓库才会删除 git push origin :branch-name # ...

  6. Linux上调试core文件(Good)

    coredump文件 什么是coredump? 通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等.可以理解为把程序工作的当前状态存储成一个文件.许多程序和操作系统出 ...

  7. java-压缩文件成zip文件(多文件/单文件/多目录/单目录/无目录),用于下载

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处. http://www.cnblogs.com/king-xg/p/6424788.html 上代码: pac ...

  8. Vue 插槽详解

    Vue插槽,是学习vue中必不可少的一节,当初刚接触vue的时候,对这些掌握的一知半解,特别是作用域插槽一直没明白. 后面越来越发现插槽的好用. 分享一下插槽的一些知识吧. 分一下几点: 1.插槽内可 ...

  9. github访问很慢的问题

    公司一直用着svn, 之前也的确用过github的版本管理,但是一直都是可视化的操作 这几天面试了几名前端,问了一下发现他们在之前的公司里都是用git的, 于是今天好好温故了一下怎么用命令行进行一下g ...

  10. ubuntu学习命令

    1.双系统下挂载windows硬盘 检测ntfs-3g是否安装:locate ntfs-3g 没有则安装: sudo apt-get install ntfs-3g 查看硬盘信息: sudo fdis ...