此篇文章以后随缘更新,这个系统的相关问题网上一般都有答案,浪子个人已不再使用 CentOS 系统。
一、CentOS7最小安装
1、配置网卡
先进行网络的连接,编辑网络配置文件(vi /etc/sysconfig/network-scripts/ifcfg-ens32
),不同的机器最后的文件名称可能不同,一般都是 ifcfg-
开头。
1 2 3 4 5 6 7 BOOTPROTO=static ONBOOT=yes IPADDR= NETMASK= GATEWAY= DNS1=
设置完成后,保存退出,使用命令 systemctl restart network
重启网卡。
2、关闭防火墙以及 Linux 的一些安全策略
1 2 3 4 5 6 systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0
3、设置镜像源
配置本地 yum 源(标准版或者全量版)
1 2 3 4 5 6 7 8 9 10 11 12 13 cd /etc/yum.repos.d/mkdir bakmv * bakcurl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum update
配置本地 yum 源(标准版或者全量版可用)
这里只是提一下。能够使用该方式的必须是标准版/全量版的镜像,但是使用最小化安装的方式。直接挂载 iso 镜像进行一些工具的安装(工具都在镜像中,但是未安装),在内网的情况下安装系统这样比较方便。
1 2 3 4 5 mkdir /mnt/cdrommount /dev/cdrom /mnt/cdrom cp /etc/yum.repos.d/bak/CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo
编辑刚才我们拷贝的文件:vi CentOS-Media.repo
,这就是安装软件时读取的安装源配置,加入以下内容,先使用本地镜像安装。
1 2 3 4 5 [linux] name=linux baseurl=file:///mnt/cdrom gpgcheck=0 enabled=1
接下来就可以安装一些镜像中包含的工具后再取消挂载。后面就可以安装自己上传的离线包嘞!
1 2 3 4 5 6 yum clean all yum install -y wget vim umount /media
4、安装常用工具
yum -y install curl telnet vim wget lrzsz iproute2
修改vim配置(可以不修改,按照默认的即可,这里仅仅是偏好)
1 2 3 4 5 6 7 8 9 10 vim ~/.vimrc set encoding=utf-8 " 文件编码 set number " 显示行号set tabstop=4 " tab宽度为4 set softtabstop=4 " 设置一次可以删除4个空格set expandtab " tab转换为空格 set nowrap " 不自动换行set showmatch " 显示括号配对情 syntax on " 开启语法高亮
5、安装一些基础依赖
yum -y install gcc gcc-c++ make autoconf automake pkg-config gettext wget lrzsz libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel libxslt-devel libevent-devel libtool libtool-ltdl bison gd gd-devel vim-enhanced pcre-devel zip unzip ntpdate sysstat patch bc expect rsync
6. rpm命令
1 2 3 4 5 6 7 8 rpm -ivh xxx.rpm rpm -evh xxx.rpm rpm -Uvh xxx.rpm rpm -qa
7. lrzsz:文件上传下载
1 2 3 4 5 6 yum install -y lrzsz sz rz
二、部署服务
1. Redis
1 2 3 4 5 6 sudo yum -y install gcc automake autoconf libtool makemake MALLOC=libc make install PREFIX=/usr/local/redis
Redis 的默认的配置文件在源码解压后的目录中
2. RabbitMQ
RabbitMQ 是使用 Erlang 语言编写的中间件,联想一下 Java,我们可以猜到它需要先搭建 Erlang 环境。主要是这个环境需要编译源码,RabbitMQ 本身官网提供了二进制压缩包。
一、Erlang环境搭建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto tar -zxvf otp_src_24.1.7.tar.gz cd otp_src_24.1.7/./configure --prefix=/usr/local/erlang make && make install cd /usr/local/erlang/bin/./erl export PATH=$PATH :/usr/local/erlang/binsource /etc/profile
二、安装Rabbitmq
通过第一步,我们就搭建好了 Erlang 环境,接下来就是安装 RabbitMQ 了,这个还是比较简单的,因为它已经编译好了,我们可以下载直接配置,无需编译。
1 2 3 4 5 6 7 8 9 tar -Jxvf rabbitmq-server-generic-unix-3.9.11.tar.xz mv rabbitmq_server-3.9.11 /usr/local/rabbitmqexport PATH=$PATH :/usr/local/rabbitmq/sbinsource /etc/profile
3. Python
Linux 下基本不需要配置 Python 的环境,有个别的 ISO 镜像版本比较老,比如 CentOS7 的 mini ISO 镜像是2.x的,我们可以通过各大系统的包管理工具进行安装,也可以自己通过源码编译安装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel tar -zxvf Python-3.10.2.tgz cd Python-3.10.2./configure prefix=/usr/local/python3 make && make install python3 -V ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
4. Nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 tar -zvxf nginx-1.20.2.tar.gz ./configure --prefix=/usr/local/nginx make && make install cd /usr/local/nginx./nginx start ./nginx -s stop ./nginx -s reload
5. Btop++
Btop++ 是一个 Linux 资源监视器,显示处理器、内存、磁盘、网络和进程的使用情况和统计资料,界面美观,使用简单。这里使用了源码编译安装,但是浪子推荐下载 Github 仓库的二进制包解压运行 install.sh 脚本安装。
1 2 3 4 5 6 7 8 9 10 11 yum install coreutils sed build-essential -y yum install centos-release-scl -y yum install devtoolset-10 -y scl enable devtoolset-10 bash echo "source /opt/rh/devtoolset-10/enable" >> /etc/profilegit clone https://gitee.com/mirrors/btop.git cd btopmake && make install
6. FFmpeg
1 2 3 4 5 6 7 8 9 10 11 12 13 git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg yum install yasm.x86_64 -y cd ffmpeg./configure --enable-ffplay --enable-ffserver --prefix=/usr/local/ffmpeg make && make install cd /usr/local/ffmpeg
7. MySQL(解压版)
yum 方式安装:https://zhuanlan.zhihu.com/p/87069388
使用通用的 MySQL8.x 版本的二进制压缩包进行安装。至于卸载,就把有关 MySQL 创建的几个文件夹删掉就行了,/etc/my.cnf
是默认自带的,卸载的时候删不删都没有问题,如果默认没有这个文件也不必担心,可以手动添加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 cat /etc/group | grep mysqlcat /etc/passwd | grep mysqlgroupadd mysql useradd -r -g mysql mysql yum -y install libaio-devel.x86_64 numactl tar xxx -C /usr/local/mysql cd /usr/local/mysql/bin./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data port = 3306 cd /usr/local/mysql/support-files/mysql.server start ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysqlservice mysql restart cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqldchkconfig --add mysqld chkconfig --list
至此,安装任务基本完成,下面需要添加用户并分配权限,进入 MySQL 的 bash 环境需要之前进行初始化时生成的密码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 mysql -u root -p alter user root@'localhost' identified by 'newpassword' ; flush privileges; use mysql; grant all privileges on *.* to 'root' @'%' identified by 'password' ; create user dev@'%' identified by '123456' ; grant select ,update,delete,insert on *.* to dev@'%' with grant option; flush privileges;
初始化成功截图:
记录日志最末尾位置 root@localhost:
后的字符串,此字符串为mysql管理员临时登录密码。
问题一:密码正确但是进不去 bash 环境
1 ERROR 1045 (28000): Access denied for user 'root' @'localhost' (using password: YES/NO)
解决方法:
使用 kill 命令停止 mysqld 相关服务
cd /usr/local/mysql/bin/,运行命令: mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
使用密码登录数据库 mysql -u root -p 并切换到 mysql 数据库
执行命令:update user set host='%' where user='root';
问题二:预读处理
1 2 3 mysql> use dbname; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A
这个问题是之前使用的 apt-get 管理工具安装的 MySQL 出现的,原因是因爲數據庫採用了預讀處理。解决办法就是在我们进入MySQL的bash环境时,需要加入 -A
参数,不让其预读数据库信息,mysql -u root -p -A
。如果覺得每次进入 bash 环境都要添加参数比较麻烦,也可以在 my.cnf
文件里加上如下內容:
问题三:Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
这是 my.cnf
的配置问题,下面的三块内容必须都要设置,不然就会使用默认的 socket,位于 /tmp/mysql.sock
目录,因此我们最好配置一下:
/etc/my.cnf 1 2 3 4 5 6 7 8 9 10 11 12 13 [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/usr/local/mysql/mysql.sock port=3306 [client] default-character-set=utf8 socket=/usr/local/mysql/mysql.sock [mysql] default-character-set=utf8 socket=/usr/local/mysql/mysql.sock
或者我们打一个软链接:
1 ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock
三、附
1. 关于源码编译安装失败
如果源码编译失败,先确认所需依赖是否全部成功安装,然后清除上一次编译的缓存,之后再次编译,不然会一直失败。参考网址
2. 防火墙
CentOS 版本不同采用的防火墙管理也不同(当然,我们部署后可以安装)。CentOS 6 使用的 iptables ,CentOS 7 使用的 firewall 。
CentOS 7 firewall 基础使用
1 2 3 4 5 6 7 8 9 10 firewall-cmd --list-port firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --remove-port=8083/tcp --permanent firewall-cmd --reload firewall-cmd --list-port
CentOS 6 iptables 基础使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 service iptables start service iptables stop service iptables status chkconfig iptables off chkconfig iptables on iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -P INPUT ACCEPTiptables -A OUTPUT -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -s 10.159.1.0/24 --dport 22 -j ACCEPT iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT iptables -I INPUT -s 123.45.6.7 -j DROP iptables -I INPUT -s 123.0.0.0/8 -j DROP iptables -I INPUT -s 124.45.0.0/16 -j DROP iptables -I INPUT -s 123.45.6.0/24 -j DROP iptables -L -n iptables -L -n --line-numbers iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT iptables -D iptables -F iptables-save > /etc/sysconfig/iptables.save iptables-restore < /etc/sysconfig/iptables.save service iptables save service iptables restart
开放端口
方法一:通过命令行
1 2 3 iptables -A INPUT -p tcp --dport 80 -j ACCEPT service iptables save service iptables restart
方法二:编辑配置文件
编辑配置文件:vi /etc/sysconfig/iptables
,添加:
1 2 iptables -A INPUT -p tcp --dport 80 -j ACCEPT service iptables restart
3. 恢复系统初始状态
1 2 3 yum clean all yum history list all yum history undo 1