• CentOS 7:服务器环境搭建


    写在前面

    主要是记录一下如何在centos服务器上搭建Java 服务器的过程(包括MySQL, Redis, Zookeeper和Nginx)。

    一、Yum

    Yum是centOS上的一个安装软件包的工具,能够自动处理依赖,可以很方便地安装软件。如果某个软件包能够直接用yum下载安装,应该首选它。

    错误1. Cannot find a valid baseurl for repo: base/$releasever/x86_64

    情景:使用yum命令进行安装或者更新的时候,此时可以ping通外网。
    解决方法:应该是yum源链接不上,解决方法是替换一个源,参考博文yum使用报错:Cannot find a valid baseurl for repo: base

    错误2: http://mirrors.aliyun.com/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found

    情景:可以ping通外网,但仍然出现了404错误。

    404错误

    解决方法:Yum的源仓库地址如下,里面的每个.repo文件都记录了Yum安装软件时的数据来源。如果无法连接,出现了404错误,很有可能是里面的源地址配置错误或者无效或者冲突。通过vim xxx.repo可以查看里面的内容。如果要修改CentOS-xxx.repo,一定要注意事先备份,以免修改出现错误。

    cd /etc/yum.repos.d  # 进入目录
    mv xxx.repo xxx.repo.backup  # 拷贝源配置
    vim xxx.repo  # 查看里面的内容
    rm -rf xxx.repo  # 删除某个源配置
    
    • 1
    • 2
    • 3
    • 4

    查看源

    二、安装MySQL

    主要参考博文:CentOS7安装MySQL(完整版)

    1. 查看当前环境下是否有mysql版本,并删除所有相关文件。参考博文:Centos7 完全卸载mysql
    2. 下载并安装MySQL官方的 Yum Repository。
    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 
    
    • 1
    1. 用Yum安装MySQL。
    yum -y install mysql57-community-release-el7-10.noarch.rpm
    
    • 1
    1. 安装MySQL服务器。
    yum -y install mysql-community-server
    
    • 1
    1. 验证MySQL是否安装成功。
    systemctl start mysqld.service  # 启动服务
    systemctl status mysqld.service  # 查看服务状态
    service mysqld stop  # 关闭服务
    service mysqld restart  # 重启服务
    
    • 1
    • 2
    • 3
    • 4
    1. 登录MySQL控制台。
    mysql -uroot -p
    
    • 1

    错误1:Public key for mysql-community-libs-5.7.38-1.el7.x86_64.rpm is not installed

    情景:安装MySQL服务器时出现错误。
    没有安装公钥

    解决方法:公钥过期了,参考https://blog.csdn.net/m0_52869579/article/details/124881266,安装最新的密钥,然后重新执行安装即可。

    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022  # 安装最新密钥
    
    • 1

    安装密钥

    错误2:firewall-cmd: error: unrecognized arguments: --add-port-3306/tcp

    情景:为MySQL开启防火墙端口3306.
    解决办法:就是设置的命令行写错的,正确的如下:

    firewall-cmd --zone=public --add-port=3306/tcp --permanent  # 开启端口
    
    • 1

    其他的一些关于防火墙的操作:

    firewall-cmd --state  # 查询防火墙状态
    systemctl status firewalld  # 查询防火墙的详细信息
    netstat -ntpl  # 查看所有端口情况
    systemctl start firewalld.service  # 开启防火墙
    systemctl stop firewalld.service  # 关闭防火墙
    firewall-cmd --reload  # 重启防火墙
    firewall-cmd --query-port=3306/tcp  # 查询某个端口是否开启生效
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意:如果防火墙是开启状态,那么添加了端口之后还需要重启一次防火墙端口才能生效。

    三、安装Zookeeper

    主要参考博文CentOS下安装zookeeperCentos7安装zookeeper详细流程(亲测绝对成功!)

    1. 下载安装包
    • 推荐使用国内的镜像源,如清华镜像,不要用apache官网的那个,很容易连接失败。进入镜像网站查找最新的安装包,然后用wget命令下载。
    • 下载前最好先新建一个文件夹,然后进入该文件夹再下载,以免安装包管理混乱,不知道下载到哪里了。
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz --no-check-certificate
    
    • 1
    1. 解压安装包
    • 解压到/usr/local目录下。
    tar -zxvf ./apache-zookeeper-3.6.3-bin.tar.gz -C /usr/local
    
    • 1
    1. 重命名解压的文件夹
    • mv命令可以用于重命名或者移动文件夹
    • 进入到/usr/local,用下面的写法相当于是重命名文件夹
    mv ./apache-zookeeper-3.6.3-bin/ zookeeper-3.6.3
    
    • 1
    1. 新建两个文件夹
    cd zookeeper-3.6.3/
    mkdir data
    mkdir logs
    
    • 1
    • 2
    • 3
    1. 用提供的模板创建一个配置文件
    cd conf  # 进入配置模板所在的文件夹
    cp zoo_sample.cfg zoo.cfg  # 复制一个配置文件
    vim zoo.cfg  # 修改配置文件
    
    • 1
    • 2
    • 3
    • 配置文件主要是增加和修改dataDirdataLogDir两处。
      修改配置文件
    1. 启动服务
    • 脚本文件是在zookeeper-3.6.3/bin文件夹中。
    cd bin
    ./zkServer.sh start  # 启动zookeeper
    ./zkServer.sh stop  # 停止zookeeper
    ./zkServer.sh status  # 查看zookeeper状态
    
    • 1
    • 2
    • 3
    • 4
    ./zkCli.sh  # 启动客户端,连接服务
    
    • 1
    • 启动客户端后,会进入客户端控制台,用quit退出客户端。一些客户端常用的命令可以参考博文ZooKeeper的简单使用

    四、安装redis

    主要参考博文centOS 环境 安装redis方法

    1. 下载安装包
    • 下载源地址在这里:https://download.redis.io/releases/,可以在里面选择最新的版本下载。
    • 下载前,注意先进入一个常用的保存下载文件的文件夹再下载,以免不知道下载到哪里或者安装包管理混乱。
    wget https://download.redis.io/releases/redis-6.2.7.tar.gz
    
    • 1
    1. 解压安装包
    • 解压到/usr/local路径下。
    tar -zxvf ./redis-6.2.7.tar.gz -C /usr/local
    
    • 1
    1. 进入解压的redis-6.2.7文件夹中,编译源代码
    • 该文件夹中的src文件夹中有Makefile文件,直接使用gcc编译的make命令即可。
    • 如果没有gcc,使用yum下载。
    yum install gcc  # 安装gcc
    
    • 1
    • 第一次运行make会报错,执行一次清理操作即可。
    make distclean  # 清理操作
    
    • 1
    • 然后就可以直接执行make命令
    make  # 在redis-6.2.7文件夹目录下执行编译
    
    • 1
    • 之后安装tcl8.5以上的资源包。
    # 到放置下载安装包的文件夹中下载安装包
    wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
    # 解压并将tcl8.6.1文件夹放到/usr/locol目录下
    # 进入tcl8.6.1/unix目录,执行以下命令
    ./configure
    make
    make install  # 确认安装
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 回到解压的redis-6.2.7文件夹中,执行
    make test
    
    • 1

    确认是否所有的测试均通过。

    • 启动服务器和客户端
      此时的src目录下已经含有多个可执行文件。
    ./redis-server  # 运行redis服务器
    ./redis-cli  # 运行redis客户端
    
    • 1
    • 2
    1. 配置到系统环境变量中
    • redis-6.2.7文件夹中执行
    # 将redis安装到这个目录下
    make install PREFIX=/opt/practice/redis6  
    # 在该目录的bin下复制了所有redis的可执行文件
    
    • 1
    • 2
    • 3
    • 配置到环境变量中
    vim /etc/profile
    # 把下面两行添加到最后面
    export REDIS_HOME=/opt/practice/redis6
    export PATH=$PATH:$REDIS_HOME/bin
    # 退出vim,使配置文件生效
    source /etc/profile 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 配置端口,安装多个redis服务
    • 进入redis-6.2.7/utils,执行
    ./install_server.sh
    
    • 1
    • 然后可以自己输入一个端口号,也可以用默认的端口号6379,然后一直回车或者修改默认的配置即可。
      安装redis服务

    • 配置结束后可以用下面的命令来查看状态。

    service redis_xxx status  # 查看端口号绑定的服务
    ps -ef|grep redis  # 查看所有关于redis的进程和端口
    
    • 1
    • 2

    错误1:Warning: Could not create server TCP listening socket *:6379: bind: Address already in use

    • 情景:用ctrl+z停止某个redis服务之后,重新执行./redis-server出现错误。
    • 原因:默认的6379端口仍然被占用。默认的调用./redis-server会使用默认的端口,导致调用失败。
    • 解决方法:使用下面的命令查看是什么进制占用了端口,然后kill掉即可。
    ps -ef|grep redis
    
    • 1

    错误2:This systems seems to use systemd. Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!

    #bail if this system is managed by systemd
    #_pid_1_exe="$(readlink -f /proc/1/exe)"
    #if [ "${_pid_1_exe##*/}" = systemd ]
    #then
    #       echo "This systems seems to use systemd."
    #       echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
    #       exit 1
    #fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    五、安装Nginx

    主要参考博文Centos系统上nginx安装

    1. 用yum安装Nginx依赖包pcre
    yum -y install pcre-devel
    # 验证是否安装成功
    pcre-config --version
    
    • 1
    • 2
    • 3
    1. 安装其他依赖
    yum -y install pcre-devel
    yum -y install openssl openssl-devel
    
    • 1
    • 2
    # 或者用下面的命令一次性安装
    yum -y install openssl-devel pcre-devel zlib-devel
    
    • 1
    • 2
    1. 进入下载文件的文件夹目录,下载安装包
    wget http://nginx.org/download/nginx-1.20.1.tar.gz
    
    • 1
    1. 解压到/usr/local
    tar -zxvf ./nginx-1.20.1.tar.gz -C /usr/local
    
    • 1

    进入该解压的目录,执行

    ./configure  # 配置
    make
    make install  # 编译
    
    • 1
    • 2
    • 3
    1. 进入/usr/local/nginx/sbin,启动nginx
    ./nginx  # 启动nginx
    ps -ef | grep nginx  # 查看是否有nginx进程
    netstat -anp | grep xxxx  # 查看nginx占用的端口
    
    • 1
    • 2
    • 3
    1. 开启防火墙的80端口
    # 查看防火墙是否开启
    systemctl status firewalld.service 
    # 查看端口开放情况
    firewall-cmd --list-all
    
    • 1
    • 2
    • 3
    • 4
    • 如果没有80端口开放,则执行:
    # 永久开放http 80端口
    firewall-cmd --add-service=http --permanent
    firewall-cmd --add-port=80/tcp --permanent
    
    • 1
    • 2
    • 3
    # 重启防火墙
    firewall-cmd --reload
    # 查看端口开放情况
    firewall-cmd --list-al
    
    • 1
    • 2
    • 3
    • 4

    已经开放了80端口

    1. 局域网内可以通过:ip:80访问ngxin服务
    • 查看ip地址方式
    ip address
    
    • 1
  • 相关阅读:
    Ionic4 生命周期钩子函数和angular生命周期钩子函数介绍
    微信多开助手分享,想开几个就几个
    Vue中使用Echarts封装为公用组件(简单复制粘贴)
    linux shell中 if else以及大于、小于、等于逻辑表达式
    字符与字符串
    FPGA刷题——交通灯+售卖机
    复杂的连接如何破坏智能家居体验
    【计算机网络笔记】路由算法之距离向量路由算法
    远程桌面无法复制粘贴文件
    Redis 到底是单线程还是多线程呢?
  • 原文地址:https://blog.csdn.net/weixin_43992162/article/details/125379526