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错误。

CentOS 7:服务器环境搭建_第1张图片

解决方法: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  # 删除某个源配置

查看源

二、安装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. 用Yum安装MySQL。
yum -y install mysql57-community-release-el7-10.noarch.rpm
  1. 安装MySQL服务器。
yum -y install mysql-community-server
  1. 验证MySQL是否安装成功。
systemctl start mysqld.service  # 启动服务
systemctl status mysqld.service  # 查看服务状态
service mysqld stop  # 关闭服务
service mysqld restart  # 重启服务
  1. 登录MySQL控制台。
mysql -uroot -p

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

情景:安装MySQL服务器时出现错误。
CentOS 7:服务器环境搭建_第2张图片

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

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

CentOS 7:服务器环境搭建_第3张图片

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

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

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

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

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  # 查询某个端口是否开启生效

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

三、安装Zookeeper

主要参考博文CentOS下安装zookeeper和Centos7安装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. 解压安装包
  • 解压到/usr/local目录下。
tar -zxvf ./apache-zookeeper-3.6.3-bin.tar.gz -C /usr/local
  1. 重命名解压的文件夹
  • mv命令可以用于重命名或者移动文件夹
  • 进入到/usr/local,用下面的写法相当于是重命名文件夹
mv ./apache-zookeeper-3.6.3-bin/ zookeeper-3.6.3
  1. 新建两个文件夹
cd zookeeper-3.6.3/
mkdir data
mkdir logs
  1. 用提供的模板创建一个配置文件
cd conf  # 进入配置模板所在的文件夹
cp zoo_sample.cfg zoo.cfg  # 复制一个配置文件
vim zoo.cfg  # 修改配置文件
  • 配置文件主要是增加和修改dataDirdataLogDir两处。
    CentOS 7:服务器环境搭建_第4张图片
  1. 启动服务
  • 脚本文件是在zookeeper-3.6.3/bin文件夹中。
cd bin
./zkServer.sh start  # 启动zookeeper
./zkServer.sh stop  # 停止zookeeper
./zkServer.sh status  # 查看zookeeper状态
./zkCli.sh  # 启动客户端,连接服务
  • 启动客户端后,会进入客户端控制台,用quit退出客户端。一些客户端常用的命令可以参考博文ZooKeeper的简单使用。

四、安装redis

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

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

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

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

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

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

错误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

错误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!

  • 情景:配置端口和服务的使用调用./install_server.sh时出现错误。
  • 解决方法:注释掉install_server.sh中的下面一段代码即可。参考:https://blog.csdn.net/dc282614966/article/details/113688273。
#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

五、安装Nginx

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

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

进入该解压的目录,执行

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

CentOS 7:服务器环境搭建_第6张图片

  1. 局域网内可以通过:ip:80访问ngxin服务
  • 查看ip地址方式
ip address

你可能感兴趣的:(Linux,服务器,centos,linux)