• 系统版本:CentOS 7.3
  • 运行环境:.NET Core
  • 数据库:MySQL
  • 进程守护:Supervisor
  • 反向代理:nginx

.NET Core环境

安装CentOS中.NET Core依赖库

yum install libunwind
yum install libicu

注册Microsoft密钥,产品存储库并安装所需的依赖项。

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

更新可用于安装的产品

sudo yum update

安装.NET SDK

sudo yum install dotnet-sdk-2.2

MySQL数据库

获取安装包并完成安装

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

启动MySQL

service mysqld restart

登录数据库

mysql -u root

设置密码(将password换为自己的密码)

set password for 'root'@'localhost' =password('password');

指定用户远程访问授权

grant all privileges on *.* to root@'%'identified by 'password';

大小写不敏感设置

  • 编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,重启MySQL才生效。

进程守护

安装Supervisor

yum install python-setuptools
easy_install supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

配置Supervisor

  • 打开/etc/supervisor/supervisord.conf文件,将

      ;[include]
    ;files = relative/directory/*.ini

更换为

	[include]
files = conf.d/*.conf
  • 进入目录/etc/supervisor/新建conf.d文件夹,conf.d文件夹下新建 netcore.conf文件,内容如下:

      [program:netcore]
    command=dotnet mhqtalks.dll ; (注意)运行程序的命令
    directory= /home/netcore/mhqtalks/ ; (注意 注意)对应的你的项目的存放目录,这个地方好多初学者搞错!!
    autorestart=true ; 程序意外退出是否自动重启
    stderr_logfile=/var/log/netcore.err.log ; 错误日志文件
    stdout_logfile=/var/log/netcore.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT

执行命令

	supervisord -c /etc/supervisor/supervisord.conf
supervisorctl reload
  • 配置Supervisor开机启动:打开目录 /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 is-enabled supervisord #来验证是否为开机启动
  • 启动Supervisor

      supervisorctl start netcore

反向代理

安装Nginx

  • 添加Nginx存储库

      sudo yum -y install epel-release
  • 安装Nginx

      sudo yum -y install nginx
  • 设置开机启动

      sudo systemctl enable nginx
  • 启动

      sudo systemctl start nginx

配置

  • 编辑配置文件

      vim /etc/nginx/nginx.conf

输入i触发文件编辑,找到如下节点并编辑,

    server {
listen 80; #修改为监听端口
server_name fxy.wiki; #修改为监听域名
root /usr/share/nginx/html; # Load configuration files for the default server block
include /etc/nginx/default.d/*.conf; location / {
proxy_pass http://localhost:5000; #请求转向地址
}

完成编辑后,按Esc退出编辑模式,输入“:wq”保存修改并退出。

  • 测试及重启

    输入

      nginx -t

若无问题则返回如下信息

    [root@iZj6c56xwl3ro8ov5irje1Z netcoreapp2.2]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启服务,

    nginx -s reload

域名及主机

  • 域名正常注册即可,选择主机时若不想备案可以选择香港或者国外ECS,考虑速度推荐选择比较近的香港节点。
  • 在阿里云域名控制台将域名解析至指定ip主机。

参考资料

CentOS下搭建.NET Core项目运行环境的更多相关文章

  1. linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    一.安装JDK 1.卸载旧版本或者系统自带的JDK (1)列出所有已安装的JDK rpm -qa | grep jdk (2)卸载不需要的JDK yum -y remove 安装包名称 2.下载并解压 ...

  2. windows下搭建学习objective-c 的运行环境【转载】

    对于Iphone开发学习者而言,Object -c 是必修的语言.但是由于苹果的自我封闭的产业链发展模式(从芯片.机器.开发语言.终端产品.服务)的限制,要想开发针对苹果iPhone等产品的应用程序, ...

  3. Docker学习笔记之搭建 Java Web 项目运行环境

    0x00 概述 Java Web 泛指以 Java 程序为基础向外提供 Web 服务的技术及相关工具,狭义上来说,我们也可以说 Java Web 是由 Servlet 程序提供的 Web 服务. 对我 ...

  4. Mac下搭建Apache+PHP+MySql运行环境

    https://www.cnblogs.com/xiaovw/p/8854896.html 前言 我们在Mac上搭建Apache+PHP+MySql环境是非常方便的,因为Mac预装的有Apache和P ...

  5. ubuntu 下搭建apache+python的运行环境

    ubuntu下怎么搭建apache+python运行环境,可以参考http://www.01happy.com/ubuntu-apache-mod-python/ ,这里只是简单的记录下步骤,本文主要 ...

  6. linux环境下配置java WEB项目运行环境,jdk8+tomcat8+mysql5.7.11 新手向

    一:安装jdk 1.下载jdk  在oracle下载东西的时候因为oracle的一些验证机制,所以需要在链接前面添加一些参数 wget --no-check-certificate --no-cook ...

  7. 一种让运行在CentOS下的.NET CORE的Web项目简单方便易部署的自动更新方案

    一.项目运行环境 项目采用的是.NET5开发的Web系统,独立部署在省内异地多台CentOS服务器上,它们运行在甲方专网环境中(不接触互联网),甲方进行业务运作时(一段时间内)会要求异地服务器开机上线 ...

  8. SAAS云平台搭建札记: (二) Linux Ubutu下.Net Core整套运行环境的搭建

    最近做的项目,由于预算有限,公司决定不采购Windows服务器,而采购基于Linux的服务器. 一般的VPS服务器,如果使用Windows系统,那么Windows Server2012\2016安装好 ...

  9. 在CentOS下搭建Android 开发环境

    在CentOS下搭建Android 开发环境 目录 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.ADT安装 1.4.Android SDK安装 1.5.Android NDK ...

随机推荐

  1. 029——VUE中键盘语义修饰符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. ZOJ 3521 Fairy Wars oj错误题目,计算几何,尺取法,排序二叉树,并查集 难度:2

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3521 ATTENTION:如果用long long 减小误差,这道题只能用 ...

  3. Python中的数据结构 --- 列表(list)

      列表(list)是Python中最基本的.最常用的数据结构(相当于C语言中的数组,与C语言不同的是:列表可以存储任意数据类型的数据). 列表中的每一个元素分配一个索引号,且索引的下标是从0开始. ...

  4. MVC4中视图获取控制器中返回的json格式数据

    再开发MVC项目时,有时只需要从控制器中返回一个处理的结果,这时返回Json格式的数据非常的方便,在Controller中,提供了几种返回类型和方法,如: Content() 返回文本类型的Conte ...

  5. XOR Queries(莫队+trie)

    题目链接: XOR Queries 给出一个长度为nn的数组CC,回答mm个形式为(L, R, A, B)(L,R,A,B)的询问,含义为存在多少个不同的数组下标k \in [L, R]k∈[L,R] ...

  6. I.MX6 Linux eGTouch TouchScreen porting

    I.MX6 Linux eGTouch TouchScreen porting 一.Download Driver: http://www.eeti.com.tw/drivers_Linux.html ...

  7. 去除inline-block元素间间距的N种方法(转)

    一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <input /> <input type="su ...

  8. CSS琐碎[1]

    (1)letter-spacing 设置字符间局,用长度指定(百分比兼容性不好) 没有间距 间距6px API:http://gucong3000.github.io/css-book/propert ...

  9. linux下修改了tomcat端口之后无法访问

    查看防火墙,是否将修改之后的端口加入防火墙规则内,如没有,加入规则内,重启防火墙,如果还是无法访问,请看第二步 执行bin目录下shutdown.sh脚本,如果正常关闭,则执行startup.sh脚本 ...

  10. SpringMVC和Freemarker整合,带自定义标签的使用方法

    SpringMVC和Freemarker整合,带自定义标签的使用方法. [参考来源:http://www.360doc.com/content/14/1225/14/1007797_435663342 ...