主要是记录一下如何在centos服务器上搭建Java 服务器的过程(包括MySQL, Redis, Zookeeper和Nginx)。
Yum是centOS上的一个安装软件包的工具,能够自动处理依赖,可以很方便地安装软件。如果某个软件包能够直接用yum下载安装,应该首选它。
情景:使用yum命令进行安装或者更新的时候,此时可以ping通外网。
解决方法:应该是yum源链接不上,解决方法是替换一个源,参考博文yum使用报错:Cannot find a valid baseurl for repo: base。
情景:可以ping通外网,但仍然出现了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 # 删除某个源配置
主要参考博文:CentOS7安装MySQL(完整版)。
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld.service # 启动服务
systemctl status mysqld.service # 查看服务状态
service mysqld stop # 关闭服务
service mysqld restart # 重启服务
mysql -uroot -p
情景:安装MySQL服务器时出现错误。
解决方法:公钥过期了,参考https://blog.csdn.net/m0_52869579/article/details/124881266,安装最新的密钥,然后重新执行安装即可。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装最新密钥
情景:为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 # 查询某个端口是否开启生效
注意:如果防火墙是开启状态,那么添加了端口之后还需要重启一次防火墙端口才能生效。
主要参考博文CentOS下安装zookeeper和Centos7安装zookeeper详细流程(亲测绝对成功!)。
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
/usr/local
目录下。tar -zxvf ./apache-zookeeper-3.6.3-bin.tar.gz -C /usr/local
mv
命令可以用于重命名或者移动文件夹/usr/local
,用下面的写法相当于是重命名文件夹mv ./apache-zookeeper-3.6.3-bin/ zookeeper-3.6.3
cd zookeeper-3.6.3/
mkdir data
mkdir logs
cd conf # 进入配置模板所在的文件夹
cp zoo_sample.cfg zoo.cfg # 复制一个配置文件
vim zoo.cfg # 修改配置文件
dataDir
和dataLogDir
两处。zookeeper-3.6.3/bin
文件夹中。cd bin
./zkServer.sh start # 启动zookeeper
./zkServer.sh stop # 停止zookeeper
./zkServer.sh status # 查看zookeeper状态
./zkCli.sh # 启动客户端,连接服务
quit
退出客户端。一些客户端常用的命令可以参考博文ZooKeeper的简单使用。主要参考博文centOS 环境 安装redis方法。
wget https://download.redis.io/releases/redis-6.2.7.tar.gz
/usr/local
路径下。tar -zxvf ./redis-6.2.7.tar.gz -C /usr/local
redis-6.2.7
文件夹中,编译源代码src
文件夹中有Makefile文件,直接使用gcc编译的make
命令即可。yum install gcc # 安装gcc
make
会报错,执行一次清理操作即可。make distclean # 清理操作
make
命令make # 在redis-6.2.7文件夹目录下执行编译
# 到放置下载安装包的文件夹中下载安装包
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客户端
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
redis-6.2.7/utils
,执行./install_server.sh
然后可以自己输入一个端口号,也可以用默认的端口号6379,然后一直回车或者修改默认的配置即可。
配置结束后可以用下面的命令来查看状态。
service redis_xxx status # 查看端口号绑定的服务
ps -ef|grep redis # 查看所有关于redis的进程和端口
ctrl+z
停止某个redis服务之后,重新执行./redis-server
出现错误。./redis-server
会使用默认的端口,导致调用失败。ps -ef|grep redis
./install_server.sh
时出现错误。#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
主要参考博文Centos系统上nginx安装。
yum -y install pcre-devel
# 验证是否安装成功
pcre-config --version
yum -y install pcre-devel
yum -y install openssl openssl-devel
# 或者用下面的命令一次性安装
yum -y install openssl-devel pcre-devel zlib-devel
wget http://nginx.org/download/nginx-1.20.1.tar.gz
/usr/local
tar -zxvf ./nginx-1.20.1.tar.gz -C /usr/local
进入该解压的目录,执行
./configure # 配置
make
make install # 编译
/usr/local/nginx/sbin
,启动nginx./nginx # 启动nginx
ps -ef | grep nginx # 查看是否有nginx进程
netstat -anp | grep xxxx # 查看nginx占用的端口
# 查看防火墙是否开启
systemctl status firewalld.service
# 查看端口开放情况
firewall-cmd --list-all
# 永久开放http 80端口
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=80/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看端口开放情况
firewall-cmd --list-al
ip:80
访问ngxin服务ip address