当前位置: 首页 > web >正文

LINUX的使用(2)- 安装软件

0.防火墙相关

启动防火墙:

sudo systemctl start firewalld

#查看防火墙列表

firewall-cmd --list-ports

设置防火墙开机自启:

sudo systemctl enable firewalld

检查防火墙状态:

sudo firewall-cmd --state

允许某个端口(如端口 9200):

sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent

sudo firewall-cmd --reload

禁用防火墙:

sudo systemctl stop firewalld

查看端口:

sudo firewall-cmd --list-ports 

关闭防火墙端口:

 sudo firewall-cmd --permanent --remove-port=8080/tcp

sudo firewall-cmd --reload

遇到的问题

①Linux防火墙启动超时报错

如果你没有修改其他配置文件的情况下,大概率就是重启防火墙失败之后进程堵塞了,导致后续无法在启动防火墙,

解决方法:

systemctl stop firewalld
 
pkill -f firewalld
 
systemctl start firewalld

关闭两个端口22和9200

 
SELinux 端口

 -- (13: Permission denied)

SELinux 端口:
(http_port_t:端口类型, -m:修改; -a:增加)
semanage port -l | grep 8080
semanage port -l | grep http_port_t
semanage port -a -t http_port_t -p tcp 8080
semanage port -m -t http_port_t -p tcp 8080

sudo systemctl restart nginx

tail -f /var/log/nginx/error.log

1.安装Jdk

方法1:使用官方Oracle JDK

  1. 下载JDK

    访问Oracle官网下载JDK的RPM包,如jdk-8uXXX-linux-x64.rpm

  2. 安装RPM

    sudo rpm -ivh jdk-8uXXX-linux-x64.rpm
  3. 配置环境变量

    编辑/etc/profile或用户的~/.bash_profile文件,添加以下内容:

    export JAVA_HOME=/usr/java/jdk1.8.0_XXX

    export PATH=$JAVA_HOME/bin:$PATH

    替换jdk1.8.0_XXX为你的JDK目录名。

  4. 使环境变量生效

    source /etc/profile

    或者重新登录终端。

方法2:使用OpenJDK

CentOS 7自带了OpenJDK,可以通过包管理器安装。

  1. 安装OpenJDK

    sudo yum install java-1.8.0-openjdk
  2. 验证安装

    java -version

    这会显示已安装的Java版本。

  3. 配置环境变量(如果需要,类似于方法1中的步骤):

    # 设置JAVA环境变量

    export JAVA_HOME=/usr/local/java/jdk1.8.0_311

    export PATH=$JAVA_HOME/bin:$PATH

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  4. 使环境变量生效

    source /etc/profile

    这会显示已安装的Java版本。

  5. 检查Java版本

    java -version

    如果显示类似以下信息,说明安装成功:

    java version "1.8.0_311" Java(TM) SE Runtime Environment (build 1.8.0_311-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)

方法3:使用SDKMAN!(适用于多种Java版本)

SDKMAN! 是一个工具,可以让你轻松地在多种Java版本之间切换。

  1. 安装SDKMAN!

    curl -s "https://get.sdkman.io" | bash

    source "$HOME/.sdkman/bin/sdkman-init.sh"

  2. 安装Java

    sdk install java 8.0.XXX-open # 替换为具体版本号,例如 8.0.275-open

  3. 使用SDKMAN!切换Java版本

    sdk use java 8.0.XXX-open

2.安装Nginx

查看nginx的错误日志

tail -f /var/log/nginx/error.log 

方法 1: 手动添加 Nginx 仓库并安装

  1. 创建 Nginx 仓库文件

首先,手动创建一个 Nginx 的 YUM 仓库配置文件。执行以下命令:

sudo vi /etc/yum.repos.d/nginx.repo

然后在打开的编辑器中,粘贴以下内容:

[nginx]

name=nginx

repo baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=1

enabled=1

gpgkey=http://nginx.org/keys/nginx_signing.key

保存并退出编辑器(按 Esc 键,然后输入 :wq,回车)。

  1. 安装 Nginx

现在,通过 YUM 安装 Nginx:

sudo yum install nginx -y

方法 2: 使用 Nginx 官方的 RPM 包

如果无法通过 YUM 安装,可以尝试手动下载并安装 Nginx 的 RPM 包。

  1. 下载 Nginx RPM 包

你可以访问 Nginx 官方下载页面,然后根据你的系统架构下载适合 CentOS 7 的 RPM 包。

例如,你可以使用 wget 下载最新的 Nginx RPM 包:

wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.24.0-1.el7.ngx.x86_64.rpm

  1. 安装 Nginx RPM 包

下载完成后,使用 rpm 命令安装:

sudo rpm -ivh nginx-1.24.0-1.el7.ngx.x86_64.rpm

方法 3: 使用 dnf(CentOS 8 及以后版本)

如果你使用的是 CentOS 8 或更高版本,可以尝试使用 dnf 替代 yum 来安装 Nginx。首先确认 dnf 是否安装并工作正常,然后使用以下命令:

sudo dnf install nginx -y

方法 4: 使用 Docker 安装 Nginx

如果你不希望处理这些问题,可以选择通过 Docker 安装 Nginx,避免与本地系统的依赖问题。

  1. 安装 Docker

sudo yum install docker -y sudo systemctl start docker sudo systemctl enable docker

  1. 拉取并运行 Nginx 镜像

sudo docker pull nginx sudo docker run --name nginx-container -p 80:80 -d nginx

使用 Docker 运行 Nginx 是一种非常方便且不依赖系统包管理的方式。

3.安装Mariadb

方法1:官方安装

地址:https://mariadb.com/kb/en/yum/

地址:https://mariadb.org/download/

卸载mariadb(因为用的是在 CentOS 7亲测有效):

sudo yum remove mariadb-server mariadb mariadb-libs

遇到的问题:备份的数据接入

cat /var/log/mysql-error.log

[ERROR] InnoDB: The data file './ibdata1' must be writable

sudo chown -R mysql:mysql /data/mariadb/

cat /etc/my.cnf

4.安装Elasticsearch

网址:Download Elasticsearch | Elastic

选择适合自己的版本

方法1:RPM安装

下载rpm文件

安装elasticsearch

sudo rpm -ivh /data/soft/elasticsearch-8.17.4-x86_64.rpm

 我是用的是备份下的数据文件,因为是新安装的elasticsearch所以存在和之前文件所有权冲突的问题

①:查看现有文件的权限(如下图所有者和用户组都是nginx)

②:查看系统安装是时候的用户(如下图所有者:root和用户组:elasticsearch)

③:将备份下来要接入的数据文件的所属进行统一(如下图所有者和用户组都是elasticsearch)

 解析:

  1. sudo

    sudo 是 "SuperUser DO" 的缩写,表示以超级用户(root)权限执行后面的命令。这个命令通常用于需要管理员权限的操作。
  2. chown

    chown 是改变文件或目录的所有者(owner)和用户组(group)的命令。
  3. -R

    -R 是 chown 的一个选项,表示递归操作,也就是说不仅会修改指定目录本身的所有者和用户组,还会修改该目录下的所有子目录和文件。
  4. mysql:mysql

    第一个 mysql 表示新的所有者(owner)。即你希望将目录及其内容的所有权赋给 mysql 用户。第二个 mysql 表示新的用户组(group)。也就是说,文件和目录将被赋予 mysql 用户组。
  5. /data/mariadb/

    /data/mariadb/ 是你要更改权限的目录路径。

错误提醒:

8.17.4版本的ES默认是Https访问需进行修改:

解决方法:
  1. 确认 Elasticsearch 配置是否启用了 HTTPS: Elasticsearch 默认情况下只使用 HTTP 协议,但如果配置了 SSL/TLS,它会启用 HTTPS 协议。你需要检查 Elasticsearch 是否启用了 HTTPS。

    查看 elasticsearch.yml 配置文件中的相关配置,检查 xpack.security.http.ssl.enabled 是否为 true,如果启用了 HTTPS 配置,通常配置如下:

    xpack.security.http.ssl.enabled: true
    xpack.security.http.ssl.keystore.path: /path/to/keystore
    xpack.security.http.ssl.truststore.path: /path/to/truststore

    如果配置了 HTTPS,说明你应该通过 HTTPS 协议访问 Elasticsearch。

  2. 使用 HTTPS 协议访问: 如果 Elasticsearch 启用了 HTTPS,你需要在 curl 请求中明确指定使用 HTTPS,而不是 HTTP。你可以通过以下命令来进行测试:

    curl -X GET "https://localhost:9200/_nodes?pretty" --insecure
    --insecure 选项用于忽略 SSL 证书的验证(如果是自签名证书),在生产环境中最好使用有效的 SSL 证书。
    • 如果 Elasticsearch 没有启用 HTTPS: 如果你不打算启用 HTTPS,可以在 elasticsearch.yml 中禁用 SSL 配置。如下所示:

      xpack.security.http.ssl.enabled: false

      然后重新启动 Elasticsearch。

    • 7.14.0版本跟8.17.0版本大不一样

    在 Elasticsearch 7.14.0 中,如果你需要重置账号和密码,通常有两种常见的情况:

    1. 使用内置的 Elastic 用户和其他用户(如 kibana)重置密码
    2. 修改/重置自定义用户密码(如果你使用了 X-Pack 或其他安全插件)。

    以下是如何在这两个场景下进行操作的步骤:

    1. 重置内置用户密码(如 elastic 用户)

    Elasticsearch 提供了一些内置用户(例如 elastic 用户)用于访问管理界面(如 Kibana)。要重置这些内置用户的密码,可以通过以下方法:

    使用 elasticsearch-setup-passwords 工具

    Elasticsearch 7.14.0 提供了 elasticsearch-setup-passwords 工具,它可以帮助你设置或重置内置用户的密码。以下是步骤:

    1. 停止 Elasticsearch 服务(如果正在运行):

      sudo systemctl stop elasticsearch
    2. 运行密码重置工具

      你可以通过以下命令运行 elasticsearch-setup-passwords 工具:

      sudo bin/elasticsearch-setup-passwords interactive

      这将启动一个交互式的提示,要求你为内置用户(如 elastic, kibana, logstash_system 等)设置新的密码。

      • elastic 用户是 Elasticsearch 管理员用户。
      • kibana 用户用于 Kibana。
      • logstash_system 用户用于 Logstash 集成。

      你需要为每个用户设置新的密码。

    3. 重新启动 Elasticsearch 服务

      sudo systemctl start elasticsearch
    4. 使用新的密码登录: 通过 Kibana 或直接 API 访问 Elasticsearch,你可以使用新设置的密码登录。

    如果没有启用内置用户安全功能

    如果你没有启用 Elasticsearch 的安全功能(如 X-Pack 或基本认证),你将无法使用 elasticsearch-setup-passwords 工具,直接通过配置文件禁用安全性或者启用后再设置密码。

    2. 重置自定义用户密码(如果使用了 X-Pack 安全功能)

    如果你使用了 X-Pack 或 Elasticsearch 的安全功能(即启用了用户认证和角色权限控制),你可以通过以下方法重置自定义用户的密码。

    通过 elasticsearch-users 命令行工具
    1. 使用 elasticsearch-users 工具重置用户密码

      Elasticsearch 提供了一个命令行工具 elasticsearch-users,你可以用它来修改用户密码。以下是命令格式:

      sudo bin/elasticsearch-users passwd <username>

      例如,要重置 elastic 用户的密码,可以运行:

      sudo bin/elasticsearch-users passwd elastic

      然后输入新的密码。

    2. 确认用户密码已重置: 确保密码已经被成功更新。你可以通过 Kibana 或 Elasticsearch API 使用新密码进行登录。

    3. 重置 elastic 用户密码后恢复到 Kibana

    如果你使用的是 Kibana,可以通过 Web 界面使用新的密码进行登录。如果是其他用户密码重置,则确保已重新配置和分配适当的角色和权限。

    4. 最后的注意事项

    • 安全性:确保在重置密码时使用强密码,并保管好这些凭证。
    • 文件权限:确保 Elasticsearch 用户和权限配置正确,防止权限问题。

    执行sudo ./bin/elasticsearch-setup-passwords interactive后报错

    Failed to authenticate user 'elastic' against http://127.0.0.1:9200/_security/_authenticate?pretty Possible causes include: * The password for the 'elastic' user has already been changed on this cluster * Your elasticsearch node is running against a different keystore This tool used the keystore at /etc/elasticsearch/elasticsearch.keystore ERROR: Failed to verify bootstrap password 

     解决方法:使用正确的 elasticsearch.keystore

    删除并重新创建 keystore。

    1. 删除现有的 keystore

    首先,确保 Elasticsearch 实例已经停止,然后删除现有的 keystore 文件。

    停止 Elasticsearch 服务

    sudo systemctl stop elasticsearch

    删除 keystore 文件

    通常,keystore 文件位于 Elasticsearch 的配置目录下,默认路径为 /etc/elasticsearch/ 或者你的 Elasticsearch 安装目录中的 config 目录。你可以使用以下命令删除 keystore 文件:

    sudo rm /etc/elasticsearch/elasticsearch.keystore

    如果你的 Elasticsearch 安装在其他路径,替换成相应路径。

    2. 创建新的 keystore

    删除旧的 keystore 后,你可以重新创建一个新的 keystore。

    创建新的 keystore

    使用 elasticsearch-keystore 工具创建一个新的 keystore:

    sudo bin/elasticsearch-keystore create

    3. 向 keystore 中添加密码或其他敏感信息

    如果你需要将敏感信息(例如用户名、密码或证书)添加到 keystore 中,可以使用以下命令:

    添加密码

    例如,添加 elastic 用户的密码:

    sudo bin/elasticsearch-keystore add "bootstrap.password"

    执行此命令后,系统会提示你输入密码。

    如果你遇到任何问题或需要更详细的帮助,欢迎随时提问!

    安装 IK 分词插件

    地址:Index of: analysis-ik/stable/

    步骤 1:下载插件

    1. 访问 IK 分词插件的 GitHub 发布页面,找到版本 8.17.4 的插件下载链接。
    2. 下载 elasticsearch-analysis-ik-8.17.4.zip 文件。

    步骤 2:安装插件

    1. elasticsearch-analysis-ik-8.17.4.zip 文件移动到 Elasticsearch 安装目录中的 plugins 目录,或者直接在命令行中通过 URL 安装。

      假设 Elasticsearch 安装路径是 /usr/share/elasticsearch,请执行以下步骤:

      sudo bin/elasticsearch-plugin install file:///path/to/elasticsearch-analysis-ik-8.17.4.zip

      请将 path/to/elasticsearch-analysis-ik-8.17.4.zip 替换为你下载的插件文件的实际路径。(注:file:///不能去除)

    2. 如果插件安装成功,你应该会看到类似以下的输出:

      -> Downloading file:///path/to/elasticsearch-analysis-ik-8.17.4.zip 
      -> Installed plugin 'analysis-ik'

    步骤 3:重启 Elasticsearch

    安装插件后,需要重启 Elasticsearch 服务:

    sudo systemctl restart elasticsearch

    或者,如果你是使用其他方式启动 Elasticsearch 的,也可以重启它。

    步骤 4:验证插件安装成功

    重启 Elasticsearch 后,可以通过以下命令验证插件是否安装成功:

    curl -X GET "localhost:9200/_cat/plugins?v"

    如果安装成功,你应该会看到类似以下的输出:

    name component

    your-node-name analysis-ik

    步骤 5:使用 IK 分词插件

    插件安装成功后,你可以在创建索引时使用 ik 分词器。例如,以下是一个索引创建的示例,使用了 ik_smart 分词器:

    PUT /my_index
    {"settings": {"analysis": {"analyzer": {"ik_smart": {"type": "custom","tokenizer": "ik_smart"}}}},"mappings": {"properties": {"your_field": {"type": "text","analyzer": "ik_smart"}}}
    }

    5.安装Kibana

    地址:Download Kibana Free | Get Started Now | Elastic

     

    注意(这个几个项要放开):

    server.host: "0.0.0.0"

    server.basePath: "/kibana"

    server.rewriteBasePath: true

    elasticsearch.username: "elastic"
    elasticsearch.password: "t6Q91234566788"

    6.安装rides

    方法一:使用包管理器安装 Redis

    1. 更新系统软件包列表

    首先,确保你的软件包列表是最新的。可以通过以下命令更新:

    sudo apt-get update

    2. 安装 Redis
    对于 Ubuntu/Debian 系统:

    你可以使用 apt 包管理器来安装 Redis。运行以下命令:

    sudo apt-get install redis-server

    对于 CentOS/RHEL 系统:

    在 CentOS 上,使用 yum 安装 Redis:

    sudo yum install epel-release sudo yum install redis

    3. 启动 Redis 服务

    安装完成后,你可以启动 Redis 服务:

    sudo systemctl start redis

    4. 设置 Redis 服务开机自启

    为了确保 Redis 在系统启动时自动启动,你可以使用以下命令:

    sudo systemctl enable redis

    5. 验证 Redis 是否成功启动

    使用以下命令检查 Redis 服务的状态:

    sudo systemctl status redis

    你也可以通过连接到 Redis 服务器并运行一些命令来确认 Redis 是否正在运行:

    redis-cli

    然后,在 redis-cli 中输入:

    ping

    如果 Redis 正常运行,它会返回:

    PONG

    启用 Redis 密码验证

    要为 Redis 设置密码,确保启用了密码验证,你需要编辑 Redis 的配置文件 redis.conf 来启用密码功能。

    1. 编辑 Redis 配置文件: 找到并编辑 Redis 的配置文件(通常是 redis.conf)。

      在该文件中,找到以下行(大概在45%的位置):

      # requirepass foobared

      这行是默认的注释行,表示没有设置密码。要启用密码验证,取消注释并设置你希望的密码,例如:

      requirepass your_password

      这将启用密码验证,要求每次连接时都输入 your_password

    2. 重新启动 Redis: 配置更改后,需要重新启动 Redis 服务来使密码设置生效。你可以使用以下命令重启 Redis(具体命令取决于你的操作系统和 Redis 的安装方式):

      sudo systemctl restart redis

      或者如果是手动启动的 Redis:

      redis-server /path/to/redis.conf
    3. 使用密码连接 Redis: 设置密码后,你需要在连接 Redis 时提供密码。使用 redis-cli 时,可以通过以下命令进行连接并提供密码:

      redis-cli -a your_password

      也可以在连接后使用 AUTH 命令进行验证:

      redis-cli 127.0.0.1:6379> AUTH your_password OK

    7.安装Frpc

    安装Frpc核心就是要对应frps的版本

    在 CentOS 7 上安装和配置 frpc(frp 客户端)是一个相对简单的过程。以下是完整的安装和配置步骤:

    步骤 1:安装 frpc

    1. 下载 frp 的最新版本: 你可以从 GitHub 官方仓库下载最新版本的 frp(frp 的客户端 frpc 和服务端 frps):

      cd /tmp wget https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz

      这里的链接是 frp 版本 0.47.0,你可以根据需要替换成最新的版本。

    2. 解压缩下载的文件

      tar -zxvf frp_0.47.0_linux_amd64.tar.gz cd frp_0.47.0_linux_amd64
    3. frpc 文件移动到 /usr/local/bin 目录,方便全局使用:

      sudo mv frpc /usr/local/bin/ sudo mv frpc.ini /etc/frp/ # 将默认的配置文件移动到配置目录

    步骤 2:配置 frpc

    1. 创建配置文件

      frpc 的配置文件通常是 frpc.ini,你需要根据你的需求编辑配置文件。配置文件的常见内容如下:

      [common]
      server_addr = x.x.x.x  # 这里填写 frps 服务器的公网 IP 地址
      server_port = 7000      # frps 服务端口,通常为 7000[ssh]
      type = tcp
      local_ip = 127.0.0.1
      local_port = 22
      remote_port = 6000
      

      将上述内容保存为 /etc/frp/frpc.ini

    2. 启动 frpc

      启动 frpc 客户端,使用配置文件 /etc/frp/frpc.ini

      frpc -c /etc/frp/frpc.ini

      如果配置正确,frpc 会连接到 frps 服务并建立隧道。

    步骤 3:配置 frpc 服务(可选)

    为了让 frpc 在系统启动时自动启动,可以将其设置为一个系统服务:

    1. 创建 systemd 服务文件

      /etc/systemd/system/ 目录下创建一个名为 frpc.service 的文件:

      sudo vim /etc/systemd/system/frpc.service

    2. 编辑服务文件内容

      将以下内容复制到 frpc.service 文件中:

      [Unit]
      Description=frpc
      After=network.target[Service]
      ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
      Restart=on-failure
      User=root
      WorkingDirectory=/etc/frp/[Install]
      WantedBy=multi-user.target
      
    3. 重新加载 systemd 并启动服务

      sudo systemctl daemon-reload sudo systemctl start frpc
    4. 设置开机自启

      sudo systemctl enable frpc

    步骤 4:验证 frpc 是否正常工作

    1. 查看 frpc 是否在运行:

      sudo systemctl status frpc
    2. 检查端口是否被转发(例如:在远程主机上检查端口 6000 是否可以访问到本地的 SSH 服务):

      telnet your-server-ip 6000

    结语

    以上步骤应该可以帮助你在 CentOS 7 上成功安装并配置 frpc 客户端。如果遇到任何问题,欢迎随时提问!

    http://www.xdnf.cn/news/2342.html

    相关文章:

  3. Comfy UI 笔记
  4. Selenium自动化测试+OCR-获取图片页面小说
  5. 入职学习记录-RT-thread实时操作系统_1
  6. Android HAL HIDL
  7. C语言:数据的存储
  8. matplotlib画图工具使用(1) 画折线统计图python代码
  9. 【教学类-102-19】蝴蝶三色图作品1——卡纸蝴蝶(滴颜料按压对称花纹)A4横版最大号22.85CM
  10. 如何在学习通快速输入答案(网页版),其他学习平台通用,手机上快速粘贴
  11. 时间序列成像之点对称模式(Symmetrized Dot Pattern,SDP)
  12. 【2025 最新前沿 MCP 教程 04】通信渠道:理解 MCP 传输机制
  13. ShenNiusModularity项目源码学习(22:ShenNius.Admin.Mvc项目分析-7)
  14. 【深度强化学习 DRL 快速实践】稀疏奖励问题 sparse reward
  15. 高中数学联赛模拟试题精选第17套几何题
  16. C++中const的应用(1)之const 形参和实参以及成员函数的 const 和重载
  17. 从循环角度分析逐位分离法
  18. 形象的讲解什么是Gateway网关
  19. leetcode110 平衡二叉树
  20. Ubuntu 之软件包管理系统
  21. 前端技术个人求职简历模板
  22. new/delete 重载与对象池实现
  23. 高性能电脑系统优化工具Advanced SystemCare PRO v18.3.0.240 解锁永久专业版
  24. 学习Spire.Office for Java版本的科学实践
  25. 栈与队列 Part 2
  26. 【NeurlPS 2024】MAR:无矢量量化的自回归图像生成
  27. Jquery -函数调用使用创建立即执行函数
  28. 代码随想录回文子序列
  29. MQL5教程 06 EA开发实战
  30. 【免费项目分享】(项目加说明文档)基于Go语言的城市电动汽车充电桩管理系统设计与实现
  31. 深度学习原理与Pytorch实战
  32. B. And It‘s Non-Zero