centos mysql 开发包_一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建…

作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记:

环境说明

服务器系统:CentOS 7.3 64位

相关工具:putty、Xftp

服务器软件软件:.netcore、nginx、supervisor、mysql

安装CentOS7

这个就不细说了, 上教程很多,我这边是阿里云的ecs服务器,操作系统为centos 7.3 x64

安装.NET Core SDK for CentOS7

sudo yum install libunwind libicu(安装libicu依赖)

curl -sSL -o dotnet.tar.gz https://aka.ms/dotnet-sdk-2.0.0-linux-x64 (下载sdk压缩包)

mkdir -p ~/dotnet && tar zxf dotnet.tar.gz -C ~/dotnet 解压缩)

sudo ln -s /opt/dotnet/dotnet /usr/local/bin(创建链接)

参见官方文档, 需要注意的地方是第四行跟官方文档有点出入,这是建立连接,而官方文档的是添加path(只在当前session有效:export PATH=$PATH:$HOME/dotnet)

,执行这些操作之前请务必卸载旧版本及预览版本(我是直接删除旧版本的文件,执行 dotnet –info 可以查看已安装版本信息),当执行dotnet –version  xianshi 2.0.0时表示安装.net core 2.0成功

安装mysql

一、官 下载mysql

# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm (去mysql官 获取最新的rpm包 https://dev.mysql.com/downloads/repo/yum/)

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

# yum install mysql-community-server

安装完成后重启mysql服务

service mysqld restart

二、mysql相关配置

初次安装mysql,root账户没有密码。

[root@yl-web yl]# mysql -u root

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 3

Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.

mysql> show databases;

+——————–+

| Database |

+——————–+

| information_schema |

| mysql |

| performance_schema |

| test |

+——————–+

rows in set (0.01 sec)

mysql>

设置密码

mysql> set password for ‘root’@’localhost’ =password(‘password’);

Query OK, 0 rows affected (0.00 sec)

mysql>

不需要重启数据库即可生效。

mysql新建用户(用户farmhome,密码123456):

mysql>create user ‘farmhome’@’%’ identified by ‘123’;

mysql远程连接设定(把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户)

1 mysql> grant all privileges on *.* to root@’%’identified by ‘password’;

部署asp.net core

1.防火墙配置

运行、停止、禁用firewalld

启动:# systemctl start  firewalld

查看状态:# systemctl status firewalld 或者 firewall-cmd –state

停止:# systemctl disable firewalld

禁用:# systemctl stop firewalld

将接口添加到区域,默认接口都在public

# firewall-cmd –zone=public –add-interface=eth0 –permanent

永久生效再加上 –permanent 然后reload防火墙

设置默认接口区域

# firewall-cmd –set-default-zone=public –permanent

立即生效无需重启

打开端口

加入一个端口到区域:

# firewall-cmd –zone=public –add-port=5000/tcp –permanent

# firewall-cmd –zone=public –add-port=80/tcp –permanent

查看所有打开的端口:

# firewall-cmd –zone=dmz –list-ports

如出现不能绑定ipv6等错误时,请修改Program.cs,添加UseUrls(“http://0.0.0.0:50”);

配置nginx对ASP.NET Core应用的转发

修改

如出现502错误时由于SELinux保护机制所导致,我们需要将nginx添加至SELinux的白名单。

接下来我们通过一些命令解决这个问题:

yum install policycoreutils-python

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

sudo semodule -i mynginx.pp

配置守护服务(Supervisor)

目前存在三个问题

问题1:ASP.NET Core应用程序运行在shell之中,如果关闭shell则会发现ASP.NET Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生产环境对这种情况是零容忍的。

问题2:如果ASP.NET Core进程意外终止那么需要人为连进shell进行再次启动,往往这种操作都不够及时。

问题3:如果服务器宕机或需要重启我们则还是需要连入shell进行启动。

为了解决这个问题,我们需要有一个程序来监听ASP.NET Core 应用程序的状况。在应用程序停止运行的时候立即重新启动。这边我们用到了Supervisor这个工具,Supervisor使用Python开发的。

安装Supervisor

yum install python-setuptools

easy_install supervisor

配置Supervisor

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改supervisord.conf文件,

vim /etc/supervisor/supervisord.conf

将文件尾部的配置(表示加载配置文件目录下的配置文件)

ps:如果服务已启动,修改配置文件可用“supervisorctl reload”命令来使其生效

配置对ASP.NET Core应用的守护

创建一个 farmhomeapp.conf文件

至此关于ASP.NET Core应用程序的守护即配置完成。

配置Supervisor开机启动

新建一个“supervisord.service”文件

vim /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 #来验证是否为开机启动

09abddb0db2ba8fd76af129fa8db0479.png

相关内容参考:

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树首页概览32187 人正在系统学习中 相关资源:漫谈软件性能测试技术-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月15日
下一篇 2021年1月15日

相关推荐