linux常见安装(JDK,mysql,nginx)

在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:

第一种是二进制安装我们只需要对这个压缩包进行解压和一些简单的配置

第二种是rpm安装他是一个红帽包资源管理器但是不能解决库依赖的问题就是A软件一来B软件B依赖C 所以要先安装C

第三种是yum安装是在线安装需要联网 本质还是安装自动下载自动安装然后自动解决库依赖问题

第四种是源码编译安装我们要对这个进行编译在打包

安装JDK

详细理解JAVA_HOME

export JAVA_HOME=/usr/local/jdk-17.0.10

export PATH=JAVA_HOME/bin:PATH

第一行:告诉系统「Java 装在哪」

我给 Java 的安装目录起了个名字,叫 JAVA_HOME

• /usr/local/jdk-17.0.10:JDK 的真实安装路径

• JAVA_HOME:一个"变量名",以后谁想用 Java,就找它

📌 为什么要这么做?

• 很多工具(Maven、Tomcat、IDEA、Spring Boot)

不是自己去找 Java,而是直接问:

👉 "你系统里有没有 JAVA_HOME?"

② 第二行:让你在任何地方都能用 java 命令

export PATH=JAVA_HOME/bin:PATH

这句话分解来看更好理解:

PATH 是什么?

PATH 就是系统找命令的"搜索路径列表"

当你敲:

java -version

系统会:

  1. 去 PATH 里列出的目录挨个找

  2. 找到 java 这个可执行文件就运行

$JAVA_HOME/bin 是什么?

• Java 的命令(java、javac、jps)都在:

/usr/local/jdk-17.0.10/bin

这句话的意思就是:

把 Java 的 bin 目录,加到系统 PATH 的最前面

这样你:

• 不用每次写完整路径

• 在任何目录都能直接用 java、javac

1️⃣ PATH 本质是什么?

PATH 是一个目录列表,长这样:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin

• 每个目录用 : 分隔

• 系统找命令时:

👉 从左到右一个一个目录找

PATH = 目录1 : 目录2 : 目录3

:$PATH 是为了不覆盖原有 PATH,

冒号是路径分隔符,

把 Java 放前面可以确保使用指定版本的 JDK。

1). 上传安装包

使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux的 /usr/local/

2). 解压安装包

执行如下指令,将上传上来的压缩包进行解压,并通过-C参数指定解压文件存放目录为 /usr/local。

复制代码
bash 复制代码
tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/

3). 配置环境变量

使用vim命令修改/etc/profile文件,在文件末尾加入如下配置

export JAVA_HOME=/usr/local/jdk-17.0.10

export PATH=$JAVA_HOME/bin:$PATH

1). 编辑/etc/profile文件,进入命令模式

vim /etc/profile

2). 在命令模式中,输入指令 G , 切换到文件最后

G

3). 在命令模式中输入 i/a/o 进入插入模式,然后切换到文件最后一行

i

4). 将上述的配置拷贝到文件中

export JAVA_HOME=/usr/local/jdk-17.0.10

export PATH=$JAVA_HOME/bin:$PATH

5). 从插入模式,切换到指令模式

ESC

6). 按:进入底行模式,然后输入wq,回车保存

:wq

4). 重新加载profile文件

为了使更改的配置立即生效,需要重新加载profile文件,执行命令:

复制代码
source /etc/profile

5). 检查安装是否成功

复制代码
java -version

安装MySQL

安装mysql

第一步我们需要找到原来系统自带的mysql安装包把它卸载掉否则的话会安装失败
第二步下载并上传安装包
第三步解压到常常按软件的那个目录下
第四步配置环境变量在那个etc下进行配置环境变量第一个是重新写它的路径第二个是把它加入到path当中
第五步注册为系统服务将他的服务文件加入到系统当中然后在系统启动的时候,它就能自动启动mysql服务步骤分为俩步第一条把 MySQL 的启动脚本放进系统服务目录,

第二条把 MySQL 注册成系统服务并加入开机启动管理。
第六步是初始化数据库

它分为三步

第一不能使创建一个mysql组因为mysql不应该用root跑这样不安全实现权限最小化相当于给他创建了一个工作部门

第二部创建一个只能给mysql服务用不能登录的系统用户

第三部让mysql第一次生成自己的数据文件和数据库这样他就可以创建data目录里的系统表还有创建root用户和生成临时的密码一般初始化完成后日是会有root的临时密码使用这个密码进行登录

第七部启动登录mysql让我这个软件运行起来然后进行登录这里使用root用户还有刚才的临时密码进行登录

然后是第八部配置mysql的用户密码授权远程访问然后

第一步修改他的认证方式给本机登录用root用户进行改密码然后

第二部创建一个允许远程登录的root用户这里我们设置成任意的IP

第三部进行授权给远程的root所有的数据库的所有权限然后第四部刷新权限立即生效

防火墙操作

Linux系统安装完毕后,系统启动时,防火墙自动启动,防火墙拦截了所有端口的访问。接下来我们就需要学习一下,如何操作防火墙,具体指令如下:

注意: 要想在windows上能够访问MySQL,需要开放防火墙的3306端口 或者 直接关闭防火墙 ,执行如下指令:

#开发防火墙的3306端口号 firewall-cmd --zone=public --add-port=3306/tcp --permanent

#重新加载 firewall-cmd --reload

#查看开放的端口号 firewall-cmd --zone=public --list-ports

直接关闭防火墙:

systemctl stop firewalld

firewall-cmd --zone=public --add-port=3306/tcp --permanent

安装Nginx

Nginx的安装包,从官方下载下来的是c语言的源码包,我们需要自己编译安装。具体操作步骤如下:

1). 安装Nginx运行时需要的依赖

yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

安装C语言的编译环境.

yum install gcc-c++

2). 上传Nginx的源码包

3). 解压源码包到当前目录

tar -zxvf nginx-1.20.2.tar.gz

4). 进入到解压目录后,执行指令

#进入解压目录

cd nginx-1.20.2

#执行命令配置, 生成Makefile文件

./configure --prefix=/usr/local/nginx

5). 执行命令进行编译和安装

#编译

make

#编译安装

make install

启动Nginx

进入到nginx安装目录/usr/local/nginx,启动nginx服务

cd /usr/local/nginx/

sbin/nginx

启动完毕之后,我们可以通过 ps 指令查询当前系统中的nginx进程,从而确认nginx是否启动 。

然后,我们就可以打开浏览器,访问服务器上的nginx 。

分为六步

第一步中所需的依赖

第二步我们上传软件包

第三步进行解压

第四步解压之后我们进入解压的目录然后执行一条指令运行一个脚本他会告诉你的系统环境的是否安装完成,缺不缺相关的依赖

第五部进行编译执行make指令就是对源码进行编译变成可执行的程序

第六步进行安装把编译好的程序放到指定的目录当中

最后一步进行启动默认端口号80

详细解释

1️⃣ 安装依赖(先装"工具和材料")

yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

通俗理解:

nginx 不是一个"单机作战"的程序,它需要一些"帮手库"才能干活,比如:

• pcre:支持正则(URL 重写、location 匹配)

• zlib:支持 gzip 压缩(网页压缩传输)

• openssl:支持 https

👉 这一步就相当于:做饭前先买锅、买煤气、买调料

2️⃣ 上传 nginx 源码包

nginx-1.20.2.tar.gz

通俗理解:

你上传的是 nginx 的"原材料",不是装好的程序,而是"源码"。

就像:

• 源码 = 生面粉

• 安装包(rpm)= 现成面包

3️⃣ 解压源码

tar -zxvf nginx-1.20.2.tar.gz

通俗理解:

把压缩包拆开,变成一个目录:

nginx-1.20.2/

👉 相当于:把快递箱拆了,东西拿出来

4️⃣ 进入源码目录,做"安装前配置"

cd nginx-1.20.2

./configure --prefix=/usr/local/nginx

通俗理解:

这一步是告诉 nginx 三件事:

  1. 你系统环境 OK 不 OK?

  2. 缺不缺依赖?

  3. 你要装到哪?

👉 --prefix=/usr/local/nginx 表示:

nginx 将来所有文件都放在这个目录下

就像:

"我要在你家厨房做饭,用这些锅,最后饭放这个碗里"

⚠️ 如果这一步报错,99% 是依赖没装全

5️⃣ 编译 nginx

make

通俗理解:

把 人能看的源码 → 机器能跑的程序

👉 相当于:开始真正做饭了(但还没端上桌)

这一步会花点时间,正常现象。

6️⃣ 安装 nginx

make install

通俗理解:

把刚才"做好的程序"复制到你指定的目录:

/usr/local/nginx

👉 相当于:饭做好了,端上桌,摆好盘

7️⃣ 启动 nginx

cd /usr/local/nginx

sbin/nginx

通俗理解:

真正把 nginx 跑起来了 🚀

• sbin/nginx 就是 nginx 的可执行文件

• 执行后,默认监听 80 端口

浏览器访问服务器 IP,如果看到 nginx 页面,说明成功了。

🌟 一句话总总结

这整个流程就是:

装依赖 → 解压源码 → 配置 → 编译 → 安装 → 启动

相关推荐
杰克崔1 天前
do_exit的hungtask问题及coredump的实验及原理分析一
linux·运维·服务器·车载系统
BigBigHang1 天前
【docker】cloudbeaver的docker-compose及一些踩坑
运维·docker·容器
pengdott1 天前
Linux进程数据结构与组织方式深度解析
linux·运维·服务器
Java 码农1 天前
gitlab gitrunner springboot 多环境多分支部署 (非容器方式,使用原生linux 环境)
linux·spring boot·gitlab
小快说网安1 天前
等保测评通过后,如何持续满足安全运维要求?
运维·安全·网络安全·等保测评
闲过信陵饮~1 天前
无头服务器 + Vulkan + Docker 问题
运维·docker·容器
科技块儿1 天前
【需求:GDPR合规下做地域定向】解决方案:仅用IP离线库输出国家码,不存原始IP?
服务器·网络·tcp/ip
LongQ30ZZ1 天前
Linux的常见指令
linux·服务器
走向IT1 天前
vdbench在Centos系统上联机测试环境搭建
linux·运维·centos