.netcore测试环境配置(centos7,.netcore2.0,涉及面比较全面)

    几年没有写博客了(真的是几年了)。翻了一下之前的内容,发现当时有很多错误,和幼稚的理解。随着工作越来越忙,研究的时间越来越少了。(以上是与主题毫无关系的感慨)

    废话不多说了,这篇文章并非理论讲解,主要是记录一下安装配置dotnetcore环境的过程,应有尽有,便于查询。

特别标注下,怕忘: whereis xxx 查看软连接路径

vm出一个centos 7,完全干净的新系统,进入正题:

【ip设置】

cd /etc/sysconfig/network-scripts/

ip addr

默认为ens33

vi ifcfg-ens33

修改

BOOTPROTO=static

添加

IPADDR=x.x.x.x

GATEWAY=x.x.x.x

NETMASK=255.255.255.0

PREFIX=24

DNS1=x.x.x.x

ZONE=public

然后重启

service network restart

 

【安装dotnet

设置包源:

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'

安装依赖

sudo yum update

sudo yum install libunwind libicu

sdk安装:

sudo yum install dotnet-sdk-2.1.4

运行时安装:

sudo yum install dotnet-runtime-2.0.6

sudo yum install dotnet-hosting-2.0.5

注意一定要装hosting

 

【配置firewall】, 语法:

sudo firewall-cmd --permanent --zone=public --add-service=http 

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

sudo firewall-cmd --reload

 

【nginx安装】

神奇包源法(已验证,推荐):

sudo yum install epel-release

sudo yum install nginx

第二种(检验过):

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
依赖项:

yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

依赖项可能没用

yum install nginx

安装完成之后,配置nginx

vi /etc/nginx/conf.d/default.conf

内容为:

server {

  listen 80;

  location / {

    proxy_pass http://localhost:5000;  

  }

}

上述配置将80转发到dotnet的5000端口

回/etc/nginx/nginx.conf,把server节删掉(不在这里配置)

启动

systemctl start nginx

测试下,会出现502  

502是因为selinux保护机制,需要把nginx加入白名单

/usr/sbin/setsebool httpd_can_network_connect true

/usr/sbin/setsebool -P httpd_can_network_connect=1

 修改conf后都要

nginx -s reload


【装mysql

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

不下载应该也行

载入包源 

rpm -ivh xxxx.rpm

安装

 yum install mysql-community-server

community够用了

加入自启动:

systemctl enable xxxx

装好后找到  /var/log/mysqld.log  查找temporary password  找到初始密码

登入 

mysql -u root -p 输入密码

改掉默认密码

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

默认的密码策略(validate_password_policy)为 MEDIUM。

密码策略定义为:

0 or LOW                  Length
1 or MEDIUM             
Length; numeric, lowercase/uppercase, and special characters
2 or STRONG            Length; numeric, lowercase/uppercase, and special characters; dictionary file

在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件

validate_password_policy=0

如果不需要密码策略,文件中添加如下配置禁用即可:

validate_password = off

修改默认编码:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

查看编码:

show variables like '%character%'; 

 

【安装Supervisor

跟nodejs一样,dotnet阻塞了shell。如果退出shell,dotnet程序也会退出,一般保活方式supervisor。

如果安装神奇包源(见上面,nginx安装),可以直接

yum install supervisor

(已验证,推荐)。

或者通过python(第二种方法):

yum install python-setuptools

easy_install supervisor

生成配置文件:

echo_supervisord_conf > /etc/supervisord.conf

修改conf

[include]

files=/etc/supervisor.d/*.ini

解开上面的注释

对应去这目录下新建一个ini,比如:

mkdir /etc/supervisor.d

cd /etc/supervisor.d

vi xxx.ini

配置ini

[group: abc]

#programs=abc-4000

programs=abc-4000,abc-4001,abc-4002,abc-4003

 

[program:abc-7000]

command=dotnet abc.dll

directory=/home/www

user=root

autostart=true

autorestart=true

stdout_logfile=/var/log/abc/out.log

stderr_logfile=/var/log/abc/err.log

loglevel=info

注意下log一般放/var/log下

记得先去mkdir

用配置文件启动:

supervisord -c /etc/supervisord.conf  

如果不指定-c,也会用这个配置文件启动

配置好的程序(program)控制:

supervisorctl start xxxx

supervisorctl stopxxxx

supervisorctl restart xxxx

发生ini修改,记得

supervisorctl reload

-----------修改了一些错误----------

 上述是环境搭建,基本可以搭出一个完整的测试环境了。  If以后有空的话,再来讲讲(记录).netcore的具体实现和表现,依赖注入(or控制反转)的思想和具体集成方式,为将来拆分为微服务架构的代码层面准备工作,以及怎么用docker玩转dotnet。If有时间。

 



posted @ 2022-01-26 00:57  sslyc  阅读(53)  评论(0编辑  收藏  举报