.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有时间。