🎄操作环境说明
CentOS 7.6FinalShell远程登录软件(如果是在自己电脑安装的虚拟机上安装Java 则不需要此软件 如果是给远程Linux服务器安装Java则用FinalShell来远程连接访问)
🎄Java的安装
概述很多软件的使用都要基于Java 比如Tomcat和Maven 所以第一个先来安装Java8
1️⃣ 下载Java8
🎨访问Oracle的官方网站(https://www.oracle.com/java/technologies/javase-jdk11-downloads.html)下载适合的操作系统的Java Development Kit(JDK)版本
确保选择正确的版本(因为官网下载还要注册Oracle账户 比较麻烦 我直接在CSDN上下载了)下载后我用FinalShell将其上传到/export目录下
❗说明 我习惯将所有的安装压缩包都放在/export目录下 所有软件安装时的解压目录在/export/server下

❗注意 安装的时候最好指定一个统一的目录 方便查找(我所有软件安装时的解压目录在/export/server下)
2️⃣ 解压安装Java8
🎨接下来解压缩 执行tar -zxvf jdk-8u361-linux-x64.tar.gz -C /export/server/
![]()
🎨查看/export/server

3️⃣ 配置Java8环境变量
🎨配置Java8环境变量

#20230902 配置Java8环境变量
export PATH=$PATH:/export/server/jdk1.8.0_361/bin

🎨使环境变量生效 source /etc/profile(下面的图我保留了自己操作时的一个错误呈现 多加了一个$)

重新再试一遍

🎨查看Java是否配置成功

✨完美
🎄Tomcat的安装
1️⃣ Tomcat软件的获取
🎯获取Tomcat软件 [1] 在官网下载 [2] 在CSDN等web资源上直接获取 [3] 在B站教程获取等 如何获取这里不做演示 接下来直接看安装的过程
下面是我已经获取到的Tomcat软件 还是通过FinalShell软件上传到了/export目录下

2️⃣ 解压安装Tomcat
🎨解压缩到/export/server目录下
tar -zxvf apache-tomcat-8.5.59.tar.gz -C /export/server/

🎨为tomcat的安装目录创建一个软链接 这样敲命令的时候会更简短一些(可选)

3️⃣ 配置环境变量
🎨编辑tomcat的环境变量
![]()
追加:export PATH=$PATH:/export/server/tomcat/bin

重新加载配置文件

4️⃣启动并访问Tomcat

🎨云服务器开启防火墙8080端口 云防火墙开启后 公网才可以访问

🎨浏览器访问http://www.bigbigmeng.online:8080/可见Tomcat主页

🎄Nginx的安装和反向代理
1️⃣ Nginx软件的获取、解压
🎯获取Nginx软件 [1] 在官网下载 [2] 在CSDN等web资源上直接获取 [3] 在B站教程获取等 如何获取这里不做演示 接下来直接看安装的过程
下面是我已经获取到的Nginx软件 通过FinalShell软件上传到了/export目录下

2️⃣ 解压Nginx
下图是解压在
/export/server目录下的截图(软链接也创建了 软链接的创建和上面**🎄Tomcat的安装**中的方式一样)

3️⃣命令行配置nginx(配置之后进行编译安装)
:clown_face:安装会稍微费力点 需要先补充Linux的gcc编译环境
🎨补充Linux的gcc编译环境 执行下面的命令
yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++
得到如下结果

🎨进入解压后的nginx根目录 (/export/server/nginx) 并进行配置

执行以下命令(也可以将注释删除一次性执行)
./configure --prefix=/export/server/nginx
./configure --pid-path=/export/server/nginx/nginx.pid
./configure --lock-path=/export/server/nginx/nginx.lock
./configure --error-log-path=/export/server/nginx/error.log
./configure --http-log-path=/export/server/nginx/access.log
./configure --http-client-body-temp-path=/export/server/nginx/client
./configure --http-proxy-temp-path=/export/server/nginx/proxy
./configure --http-fastcgi-temp-path=/export/server/nginx/fastcgi
./configure --http-uwsgi-temp-path=/export/server/nginx/uwsgi
./configure --http-scgi-temp-path=/export/server/nginx/scgi
./configure --conf-path=/export/server/nginx/nginx.conf
./configure --with-http_gzip_static_module
./configure --with-http_stub_status_module
./configure --with-http_ssl_module
#支持https的配置 --with-http_stub_status_module --with-http_ssl_module
执行完得到如下日志信息

4️⃣编译安装Nginx
🎨补全目录
mkdir -p /var/temp/nginx

🎨编译并安装
make && make install

得到如下结果

5️⃣启动并访问
🎨启动
./sbin/nginx -t测试配置与nginx是否正常,当出现 successful 即可

执行启动 ./sbin/nginx -c nginx.conf

🎨浏览器访问 加下图Nginx已经在服务器启动成功

6️⃣ 配置Tomcat 8080端口反向代理
🎨在nginx.conf中的http块填入以下内容 写在所有server块的上面(相对位置)
# 20230903 Tomcat server
upstream tomcatServer {
server localhost:8080 max_fails=3 fail_timeout=30s;
}
🎨在nginx.conf中添加一个server
# 20230903 Tomcat server
server {
listen 80;
server_name 101.42.24.90;
location / {
proxy_pass http://tomcatServer;
}
}
保存退出

🎨重启nginx
这是我实践时遇到的一个小错误

更正后关闭nginx /export/server/nginx/sbin/nginx -s stop

然后重启nginx /export/server/nginx/sbin/nginx -c nginx.conf

查看nginx端口的启动情况 netstat -anp | grep nginx

🎨验证浏览器访问80端口 应该要能看到Tomcat的主页

nginx常用命令总结
假设nginx的安装目录为/export/server/nginx
启动 /export/server/nginx/sbin/nginx -c nginx.conf
停止 /export/server/nginx/sbin/nginx -s stop
重新加载(不需要重启)/export/server/nginx/sbin/nginx -s reload
查看版本 /export/server/nginx/sbin/nginx -v
查看版本和配置参数 /export/server/nginx/sbin/nginx -V
🎄MySQL的安装
1️⃣使用yum在线安装MySQL5.7版本
🎯使用root用户更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

🎯 安装MySQL yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

🎯 yum安装MySQL
yum -y install mysql-community-server


🎯 启动MySQL并设置开机启动
systemctl start mysqld
systemctl enable mysqld

🎯 检查Mysql服务状态
systemctl status mysqld

🎯 重启Mysql
systemctl restart mysqld
2️⃣修改MySQL的root用户密码
🎯 第一次启动mysql 会在日志文件中生成root用户的一个临时密码 使用下面命令查看该密码
grep 'temporary password' /var/log/mysqld.log

🎯 先用临时密码登录MySQL
mysql -u root -p -h localhost
Enter password: (输入临时密码)

🎯执行修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '要设置的密码';
如果你想设置简单密码 需要降低MySQL的密码安全级别 不然会报错

set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4; # 密码长度最低4位即可

然后就可以用简单密码了(生产中不建议使用简单密码)
🎯授权
grant all privileges on *.* to root@"%" identified by 'root' with grant option;
flush privileges;

🎯验证设置的root密码

✨完美
🎄Redis的安装
1️⃣ 将redis-6.2.6.tar.gz上传到 Linux /opt 目录并解压缩
获取nginx-1.20.2.tar.gz 软件的方式有很多 同前面的软件一样 这里不多赘述 直接从上传此安装包开始
🎯将redis-6.2.6.tar.gz上传到 远程服务器的/export目录下

🎯将redis-6.2.6.tar.gz解压到/export/server目录下

🎯创建软连接

2️⃣配置gcc环境
说明 安装Redis需要gcc环境 因为Redis是用C语言编写的 需要使用gcc编译器来编译源代码并生成可执行文件 gcc是Linux操作系统上最常用的编译器之一 它能够将C语言代码转换成机器码 从而实现运行程序 因此 在安装Redis之前 需要确保系统中已经安装了gcc环境
yum install gcc
我之前已经安装过 可以查看版本如下

3️⃣编译安装Redis
🎯进入redis的解压根目录 /export/server/redis 执行 make && make install

到此 安装成功~ 安装目录在 /usr/local/bin
🎯查看默认安装目录

内容说明如下
redis-benchmark: 性能测试工具,可以在自己机器运行,看看自己机器性能如何
redis-check-aof:修复有问题的 AOF 文件
redis-check-dump:修复有问题的 dump.rdb 文件
redis-sentinel:Redis 集群使用
redis-server:Redis 服务器启动命令
redis-cli:客户端,操作入口
4️⃣启动Redis
🎯进入redis的解压根目录 /export/server/redis 修改redis.conf文件
将daemonize no 改成 yes, 并保存退出 以支持后台启动


🎯配置启动环境变量 ci /etc/profile

🎯启动redis 启动之前先执行source /etc/profile使得环境变量生效

🎯查看启动状态 ps aux | grep redis

🎯用客户端访问并进行简单操作 redis-cli

✨完美~
🎄RabbitMQ的安装
参考链接如下
https://blog.csdn.net/rao991207823/article/details/118000903
🎯下载erlang 和RabbitMQ执行如下命令
wget -P /home/download https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0/erlang-23.0-1.el7.x86_64.rpm
wget -P /home/download https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm

使用http协议再试一遍 😕速度慢到不能接受 只能在官网下载 或者在CSDN等上获取了

看了一下 到了13% 顺便休息一下 再等会吧

✨不用等了 把链接 [1] https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0/erlang-23.0-1.el7.x86_64.rpm [2] https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9-1.el7.noarch.rpm放在本地浏览器地址栏 速度嘎嘎快(当然这需要能访问Github流畅)

🎯上传到Linux的/export目录下

🎯安装erlang
执行 sudo rpm -Uvh /export/erlang-21.3-1.el7.x86_64.rpm

🎯安装socat
执行sudo yum install -y socat

🎯安装RabbitMQ
执行 sudo rpm -Uvh /export/rabbitmq-server-3.8.9-1.el7.noarch.rpm

🎯RabbitMQ启动和关闭
启动服务 sudo systemctl start rabbitmq-server

查看状态 sudo systemctl status rabbitmq-server

停止服务 sudo systemctl stop rabbitmq-server
🎯开启web管理插件
开启插件 rabbitmq-plugins enable rabbitmq_management

添加用户 rabbitmqctl add_user admin admin
说明 rabbitmq有一个默认的guest用户,但只能通过localhost访问,所以需要添加一个能够远程访问的用户

为用户分配操作权限 rabbitmqctl set_user_tags admin administrator

🎯开启防火墙端口以便能够远程访问
🎨RabbitMQ 服务启动后,还不能进行外部通信,需要将端口添加都防火墙
sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

浏览器测试访问 http://www.bigbigmeng.online:15672

✨完美~
🎄ZooKeeper的安装
上传

解压到
/export/server下

🍭配置zoo.cfg
cp zoo_sample.cfg zoo.cfg

创建数据文件夹并在zoo.cfg文件配置 :
dataDir=/export/server/zookeeper-3.5.6-20231112/zookeeper_data


🍭启动ZooKeeper
cd /export/server/zookeeper-3.5.6-20231112/bin/
#启动
./zkServer.sh start

启动出错的情况(AdminServer需要使用8080端口):

解决方法:修改zoo.cfg,在其中加上
# admin.serverPort 默认占8080端口
admin.serverPort=8091

再次启动:

🍭查看启动的ZooKeeper
./zkServer.sh status
standalone代表ZooKeeper没有搭建集群 现在是单节点

🍭停止ZooKeeper
./zkServer.sh stop

🎄Kafka的安装和使用
说明:启动Kafka之前需要先安装并启动zookeeper
🍭上传和解压


🍭配置kafka需要的目录
创建一个kafka_data目录 用于存放kafka和zookeeper的log和数据
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/zookeeper #zookeeper数据目录
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/log
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/log/kafka #kafka日志
mkdir -p /export/server/kafka_2.12-3.4.1_20240330/kafka_data/log/zookeeper #zookeeper日志

🍭配置kafka配置文件
配置kafka服务: server.properties
broker.id=0
port=9092 #端口号
host.name=140.113.165.130 #服务器IP地址,修改为自己的服务器IP
log.dirs=/export/server/kafka_2.12-3.4.1_20240330/kafka_data/log/kafka #日志存放路径,上面创建的目录
zookeeper.connect=localhost:2181 #zookeeper地址和端口

配置zookeeper服务: zookeeper.properties
dataDir=/mnt/soft/kafka_data/zookeeper #zookeeper数据目录
dataLogDir=/mnt/soft/kafka_data/log/zookeeper #zookeeper日志目录
clientPort=2181
maxClientCnxns=100
tickTimes=2000
initLimit=10
syncLimit=5

🍭创建启动|关闭 kafka 执行脚本
启动脚本:
#!/bin/sh
#start zookeeper
/export/server/kafka_2.12-3.4.1_20240330/bin/zookeeper-server-start.sh /export/server/kafka_2.12-3.4.1_20240330/config/zookeeper.properties &
#等3秒后执行
sleep 3
#start kafka
/export/server/kafka_2.12-3.4.1_20240330/bin/kafka-server-start.sh /export/server/kafka_2.12-3.4.1_20240330/config/server.properties &

关闭脚本:
#!/bin/sh
#stop zookeeper
/export/server/kafka_2.12-3.4.1_20240330/bin/zookeeper-server-stop.sh /export/server/kafka_2.12-3.4.1_20240330/config/zookeeper.properties &
#等3秒后执行
sleep 3
#stop kafka
/export/server/kafka_2.12-3.4.1_20240330/bin/kafka-server-stop.sh /export/server/kafka_2.12-3.4.1_20240330/config/server.properties &

为脚本增加执行权限:
chmod +x start-kafka.sh

🍭启动|关闭 kafka
sh start_kafka.sh #启动kafka
sh stop_kafka.sh #关闭kafka
🎄Docker的安装
🍭安装Docker
(1)卸载旧版本的Docker

(2)安装需要的依赖

(3)添加dockor软件源、

(4)设置国内dockor源,让下载更加快速

(5)安装dockor

(6)查看dockor版本

🍭Docker常用命令
systemctl start docker #启动docker服务
systemctl stop docker #停止docker服务
systemctl restart docker #重启docker服务
systemctl status docker #查看docker服务状态
systemctl enable docker #开机启动docker服务
systemctl disable docker #关闭开机启动docker服务

🍭设置dockor镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://88y9upwp.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
🎄Elasticsearch的安装·使用Docker
🍭部署单点es
(0)上传压缩包

(1)创建网络:
因为还需要部署kibana容器 因此需要让es和kibana容器互联 这里先创建一个网络:
docker network create es-net

(2)加载镜像:
这里采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G 就用刚刚上传的es.tar即可
# 导入数据 `kibana`的tar包也这样做
docker load -i es.tar
提示没有足够的空间:

查看Docker信息:

查看Docker目录剩余的存储空间:df -hl /var/lib/docker/


重新执行加载
docker load -i es.tar


(3)运行docker命令,部署单点es
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1

【命令解释】
-e "cluster.name=es-docker-cluster":设置集群名称-e "http.host=0.0.0.0":监听的地址,可以外网访问-e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小-e "discovery.type=single-node":非集群模式-v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录-v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录-v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录--privileged:授予逻辑卷访问权--network es-net:加入一个名为es-net的网络中-p 9200:9200:端口映射配置
访问测试 http://node1:9200 可看到elasticsearch的响应结果:

🍭部署kibana
(1)运行docker命令,部署kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.12.1

--network es-net:加入一个名为es-net的网络中,与elasticsearch在同一个网络中-e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch-p 5601:5601:端口映射配置
kibana启动一般比较慢,需要多等待一会,可以通过命令:
docker logs -f kibana
查看运行日志,当查看到下面的日志,说明成功:

(2)测试
此时,在浏览器输入地址访问:http://node1:5601,即可看到结果

kibana中提供了一个DevTools界面:


测试中文分词效果:

🍭安装IK分词器
在线安装ik插件(较慢)
# 进入容器内部
docker exec -it elasticsearch /bin/bash
# 在线下载并安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
#退出
exit
#重启容器
docker restart elasticsearch
离线安装ik插件(推荐)
(1)查看数据卷目录
安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:
docker volume inspect es-plugins
显示结果:

[
{
"CreatedAt": "2024-01-01T15:17:04+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/es-plugins/_data",
"Name": "es-plugins",
"Options": null,
"Scope": "local"
}
]
说明plugins目录被挂载到了:/var/lib/docker/volumes/es-plugins/_data 这个目录中
(2)解压缩分词器安装包


(3)重启容器
# 4、重启容器
docker restart es

# 查看es日志
docker logs -f es
(4)测试 IK分词器两种模式
ik_smart:最少切分 认识你真的太棒了

ik_max_word:最细切分 认识你真的太棒了

扩展词典
🍭集群部署
…