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 8080sudo systemctl restart nginx
tail -f /var/log/nginx/error.log
1.安装Jdk
方法1:使用官方Oracle JDK
-
下载JDK:
访问Oracle官网下载JDK的RPM包,如
jdk-8uXXX-linux-x64.rpm
。 -
安装RPM
sudo rpm -ivh jdk-8uXXX-linux-x64.rpm
-
配置环境变量:
编辑
/etc/profile
或用户的~/.bash_profile
文件,添加以下内容:export JAVA_HOME=/usr/java/jdk1.8.0_XXX
export PATH=$JAVA_HOME/bin:$PATH
替换
jdk1.8.0_XXX
为你的JDK目录名。 -
使环境变量生效:
source /etc/profile
或者重新登录终端。
方法2:使用OpenJDK
CentOS 7自带了OpenJDK,可以通过包管理器安装。
-
安装OpenJDK:
sudo yum install java-1.8.0-openjdk
-
验证安装:
java -version
这会显示已安装的Java版本。
-
配置环境变量(如果需要,类似于方法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
-
使环境变量生效
source /etc/profile
这会显示已安装的Java版本。
- 检查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版本之间切换。
-
安装SDKMAN!:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
-
安装Java:
sdk install java 8.0.XXX-open # 替换为具体版本号,例如 8.0.275-open
-
使用SDKMAN!切换Java版本:
sdk use java 8.0.XXX-open
2.安装Nginx
查看nginx的错误日志
tail -f /var/log/nginx/error.log
方法 1: 手动添加 Nginx 仓库并安装
- 创建 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
,回车)。
- 安装 Nginx
现在,通过 YUM 安装 Nginx:
sudo yum install nginx -y
方法 2: 使用 Nginx 官方的 RPM 包
如果无法通过 YUM 安装,可以尝试手动下载并安装 Nginx 的 RPM 包。
- 下载 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
- 安装 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,避免与本地系统的依赖问题。
- 安装 Docker
sudo yum install docker -y sudo systemctl start docker sudo systemctl enable docker
- 拉取并运行 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)
解析:
-
sudo
:sudo
是 "SuperUser DO" 的缩写,表示以超级用户(root)权限执行后面的命令。这个命令通常用于需要管理员权限的操作。 -
chown
:chown
是改变文件或目录的所有者(owner)和用户组(group)的命令。 -
-R
:-R
是chown
的一个选项,表示递归操作,也就是说不仅会修改指定目录本身的所有者和用户组,还会修改该目录下的所有子目录和文件。 -
第一个mysql:mysql
:mysql
表示新的所有者(owner)。即你希望将目录及其内容的所有权赋给mysql
用户。第二个mysql
表示新的用户组(group)。也就是说,文件和目录将被赋予mysql
用户组。 -
/data/mariadb/
:/data/mariadb/
是你要更改权限的目录路径。
错误提醒:
8.17.4版本的ES默认是Https访问需进行修改:
解决方法:
-
确认 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。
-
使用 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 中,如果你需要重置账号和密码,通常有两种常见的情况:
- 使用内置的 Elastic 用户和其他用户(如
kibana
)重置密码。 - 修改/重置自定义用户密码(如果你使用了 X-Pack 或其他安全插件)。
以下是如何在这两个场景下进行操作的步骤:
1. 重置内置用户密码(如 elastic
用户)
Elasticsearch 提供了一些内置用户(例如 elastic
用户)用于访问管理界面(如 Kibana)。要重置这些内置用户的密码,可以通过以下方法:
使用 elasticsearch-setup-passwords
工具
Elasticsearch 7.14.0 提供了 elasticsearch-setup-passwords
工具,它可以帮助你设置或重置内置用户的密码。以下是步骤:
-
停止 Elasticsearch 服务(如果正在运行):
sudo systemctl stop elasticsearch
-
运行密码重置工具:
你可以通过以下命令运行
elasticsearch-setup-passwords
工具:sudo bin/elasticsearch-setup-passwords interactive
这将启动一个交互式的提示,要求你为内置用户(如
elastic
,kibana
,logstash_system
等)设置新的密码。elastic
用户是 Elasticsearch 管理员用户。kibana
用户用于 Kibana。logstash_system
用户用于 Logstash 集成。
你需要为每个用户设置新的密码。
-
重新启动 Elasticsearch 服务:
sudo systemctl start elasticsearch
-
使用新的密码登录: 通过 Kibana 或直接 API 访问 Elasticsearch,你可以使用新设置的密码登录。
如果没有启用内置用户安全功能
如果你没有启用 Elasticsearch 的安全功能(如 X-Pack 或基本认证),你将无法使用 elasticsearch-setup-passwords
工具,直接通过配置文件禁用安全性或者启用后再设置密码。
2. 重置自定义用户密码(如果使用了 X-Pack 安全功能)
如果你使用了 X-Pack 或 Elasticsearch 的安全功能(即启用了用户认证和角色权限控制),你可以通过以下方法重置自定义用户的密码。
通过 elasticsearch-users
命令行工具
-
使用
elasticsearch-users
工具重置用户密码:Elasticsearch 提供了一个命令行工具
elasticsearch-users
,你可以用它来修改用户密码。以下是命令格式:sudo bin/elasticsearch-users passwd <username>
例如,要重置
elastic
用户的密码,可以运行:sudo bin/elasticsearch-users passwd elastic
然后输入新的密码。
-
确认用户密码已重置: 确保密码已经被成功更新。你可以通过 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:下载插件
- 访问 IK 分词插件的 GitHub 发布页面,找到版本
8.17.4
的插件下载链接。 - 下载
elasticsearch-analysis-ik-8.17.4.zip
文件。
步骤 2:安装插件
-
将
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:///不能去除) -
如果插件安装成功,你应该会看到类似以下的输出:
-> 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
来启用密码功能。
编辑 Redis 配置文件: 找到并编辑 Redis 的配置文件(通常是
redis.conf
)。在该文件中,找到以下行(大概在45%的位置):
# requirepass foobared
这行是默认的注释行,表示没有设置密码。要启用密码验证,取消注释并设置你希望的密码,例如:
requirepass your_password
这将启用密码验证,要求每次连接时都输入
your_password
。重新启动 Redis: 配置更改后,需要重新启动 Redis 服务来使密码设置生效。你可以使用以下命令重启 Redis(具体命令取决于你的操作系统和 Redis 的安装方式):
sudo systemctl restart redis
或者如果是手动启动的 Redis:
redis-server /path/to/redis.conf
使用密码连接 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
-
下载 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
,你可以根据需要替换成最新的版本。 -
解压缩下载的文件:
tar -zxvf frp_0.47.0_linux_amd64.tar.gz cd frp_0.47.0_linux_amd64
-
将
frpc
文件移动到/usr/local/bin
目录,方便全局使用:sudo mv frpc /usr/local/bin/ sudo mv frpc.ini /etc/frp/ # 将默认的配置文件移动到配置目录
步骤 2:配置 frpc
-
创建配置文件:
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
。 -
启动
frpc
:启动
frpc
客户端,使用配置文件/etc/frp/frpc.ini
:frpc -c /etc/frp/frpc.ini
如果配置正确,
frpc
会连接到frps
服务并建立隧道。
步骤 3:配置 frpc
服务(可选)
为了让 frpc
在系统启动时自动启动,可以将其设置为一个系统服务:
-
创建 systemd 服务文件:
在
/etc/systemd/system/
目录下创建一个名为frpc.service
的文件:sudo vim /etc/systemd/system/frpc.service
-
编辑服务文件内容:
将以下内容复制到
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
-
重新加载 systemd 并启动服务:
sudo systemctl daemon-reload sudo systemctl start frpc
-
设置开机自启:
sudo systemctl enable frpc
步骤 4:验证 frpc
是否正常工作
-
查看
frpc
是否在运行:sudo systemctl status frpc
-
检查端口是否被转发(例如:在远程主机上检查端口
6000
是否可以访问到本地的 SSH 服务):telnet your-server-ip 6000
结语
以上步骤应该可以帮助你在 CentOS 7 上成功安装并配置 frpc
客户端。如果遇到任何问题,欢迎随时提问!