4. 从头搭建.Net的环境 - CentOS
· 阅读需 5 分钟
信息
此操作完全是根据自己实际搭建过程进行的记录,此文档所有操作都基于 PVE 安装 CentOS-7-i386-Minimal-2009
基础环境配置
固定 IP 设置
设置固定ip
进入 /etc/sysconfig/network-scripts/ 目录
> cd /etc/sysconfig/network-scripts/
编辑 ifcfg-<interface> 文件
> vi ifcfg-eth0
修改其中内容
TYPE=Ethernet
BOOTPROTO=static #将其改为 static,默认dhcp
DEFROUTE=yes
NAME=eth0
#UUID="69b5a74b-c46f-48e0-a2a5-959721dff85e"
#UUID=<UUID>
DEVICE=eth0
ONBOOT=yes # 设置为 yes,默认是 no
IPADDR=10.1.10.9 # 你要设置的固定 IP 地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=10.1.10.1 # 网关 IP 地址
保存并退出
> :wq!
重启网 络服务
> systemctl restart network
注意
此时可以通过 ping www.baidu.com 方式验证网络是否可用
当出现 位置的名称或服务 时,并且网关都通,物理机也可以正常上网,则说明虚拟机的 DNS 指向有问题,需要增加静态 DNS 解决
vi /etc/resolv.conf
# 添加以下内容后 :wq 保存后重新 启动网络服务
search localdomain
nameserver 114.114.114.114
nameserver 8.8.8.8
修改 yum 源
安装 wget,修改 yum 源
安装 wget
> yum install -y wget
修改 yum 源头
修改 yum 源,可以加快安装更新 rpm 包。在国内比较常用的有 aliyun 源、163 源等。修改方式如下
> cd /etc/yum.repos.d
> mv CentOS-Base.repo CentOS-Base.repo.backup
> wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
> mv CentOS7-Base-163.repo CentOS-Base.repo
> yum clean all
安装 dotnet
安装 dotnet3.1 和 dotnet6,由于 aspnetcore runtime 运行时已经包含 dotnet runtime,所以不需要单独安装 dotnet runtime。
> sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
> sudo yum install -y aspnetcore-runtime-3.1
> sudo yum install -y aspnetcore-runtime-6.0
检查是否安装成功。
> dotnet --list-runtimes
Microsoft.AspNetCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.35 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.32 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.35 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
安装 supervisor
> sudo yum install -y python-pip
> sudo yum install -y supervisor
配置调整
/etc/supervisord.conf
[include]
files = /srv/config/supervisor/*.conf
启动
> sudo systemctl start supervisord
> sudo systemctl enable supervisord
安装 redis
> sudo yum install -y redis
配置调整
/etc/redis.conf
bind 127.0.0.1 ::1 # 取消注释
requirepass foobared # 设置密码时,取消此行注释,修改 `foobared` 为新密码
port 6379 # 默认6379端口,如需更换,直接更改
重新启动
> sudo systemctl start redis
> sudo systemctl enable redis
如果使用非 root 账号,需要给下面文件授权
/etc/redis.conf/etc/nginx.conf/srv/config/
安装 nginx
> sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
> sudo yum install -y nginx
配置调整
/etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
...
#gzip on;
include /etc/nginx/conf.d/*.conf;
include /srv/conf/nginx/conf.d/*.conf;
}
启动
nginx
安装 mysql
卸载 mariadb
> sudo rpm -qa|grep mariadb
> sudo rpm -e mariadb-libs --nodeps
安装 5.7 版本
> sudo yum localinstall -y https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
> sudo yum install -y mysql-community-server
安装出现问题
安装后如果出现
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
Userid : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
Package : mysql57-community-release-el7-11.noarch (@/mysql57-community-release-el7-11.noarch)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Public key for mysql-community-server-5.7.44-1.el7.x86_64.rpm is not installed
Failing package is: mysql-community-server-5.7.44-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
则执行
> # rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
> rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
MySQL 配置
/etc/my.cnf
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
lower-case-table-names=1
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
user=mysql
port=3306
key_buffer_size=256M
basedir=/opt/mysql
datadir=/opt/mysql_data
socket=/opt/mysql_data/mysql.sock
pid-file=/opt/mysql_data/mysqld.pid
explicit_defaults_for_timestamp=1
max_connect_errors=6000
default-time-zone = '+08:00'
#日志
log_error=/var/log/mysql/mysql_error.log
#慢查询日志
slow_query_log=1
slow_query_log_file=/var/log/mysql/mysql_slow_query.log
long_query_time=2
[client]
default-character-set=utf8mb4
socket=/opt/mysql_data/mysql.sock
[mysql]
default-character-set=utf8mb4
设置开机启动
> systemctl enable mysqld
启动服务
> systemctl restart mysqld
获取临时密码
> grep 'temporary password' /var/log/mysqld.log
设置 root 密码
> mysqladmin -u root password 'foobared'
硬盘挂载
安装系统磁盘为 40G,另有一块 250G 磁盘可以挂载到 /srv/ 目录下
> lsblk
> fdisk -l
> mkfs -t ext4 /dev/vdb
> lsblk
> mount /dev/vdb /srv/
> df -h
> fdisk -l
> vim /etc/fstab
持久化挂载
/etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jun 28 04:16:23 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
# UUID=c8b5b2da-5565-4dc1-b002-2a8b07573e22 / ext4 defaults 1 1
/dev/vdb /srv ext4 defaults 0 1