Featured image of post Linux 常用软件安装

Linux 常用软件安装

🌏Linux_常用软件安装 🎯 这篇文章用于记录Linux的常用软件安装 ❓ 为什么要将这些基础操作写成博客?(1)加深理解和印象(2)便于快速查阅回忆 ❗在进行该笔记的实操之前 要保证已经有线程的Linux环境(本地或者远程Linux)

🎄操作环境说明

  • CentOS 7.6
  • FinalShell远程登录软件(如果是在自己电脑安装的虚拟机上安装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

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:最细切分 认识你真的太棒了

扩展词典

🍭集群部署