腾讯云服务器CentOS 7.6安装基本中间件
腾讯云服务器CentOS 7.6安装基本中间件
摘要:由于最近开始学习Redis和Zookeeper了,因此使用云服务器的频率开始多了起来,并且开始了基础的安装教学,由于我之前确实没用过Linux系统,因此用起来非常的痛苦,同时由于不同平台之间的云服务器存在差异,导致在查资料并按照别人的步骤安装时,总是出现问题,因此今天在这里着重的整理一下各种中间件的安装过程。
1.Java安装
1.1.手动Java安装
这种安装方式是最为麻烦的一种方式,但也是最为稳妥的安装方式。首先我们需要从Java官网把Java下载下来,当然是要下载和操作系统相匹配的版本,我们应该是下载Linux的64位版本,现在我们已经下载了下来:
然后我们将其上传至服务器,位置随意,但是最好不是根目录,这里我将其上传至主目录的opt文件夹中去:
上传之后可以看到Java已经存在于这里了,之后我们解压:
可见已经解压完成了:
我们通常需要记住jdk的安装位置,并在之后配置Java环境变量的时候使用到这个路径,我们可以将jdk放到任意一个系统允许的目录中去,只要在配置环境变量的时候注意书写相应的路径即可,现在我们不做任何更改了,就把jdk放在opt中,因此我们现在可以直接去配置环境变量了。
JAVA_HOME=/opt/jdk-18
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
上边的配置信息,就是我们需要在路径配置文件中填写的东西,这些东西实际上和我们在Windows中填写的东西是差不多的,复制这段配置信息,我们要进到系统的环境变量配置文件中去,输入指令:vim /etc/profile
,进入配置文件:
如图所示,我们进入配置文件,并将配置信息插入到一个位置中去:
在插入成功后,我们保存并退出,使用source /etc/profile
指令,使刚刚配置的环境变量生效,生效之后,Java就可以使用了,我们之后使用java -version
指令来测试一下是否安装成功:
可见Java已经安装成功。
1.2.使用yum进行自动安装
使用指令yum install java-devel
,可以直接安装并配置一个Java 8,yum是一个Linux系统中的安装软件的工具,同wget是一类东西,我使用的腾讯云是自带这个工具的,没有这个工具的用户可以在网上搜一下,关于yum的安装非常多,我目前先不介绍。
在经历一阵子日志输出后,Java就安装好了,如图。接下来我们测试一下java的安装结果:
2.升级GCC
我们为何要升级GCC?这是因为我们要下载安装Redis,因为Redis是使用C语言编写的,在Linux系统上自然需要C语言的编译器,被编译之后才能运行,因此我的服务器上首先必须要有GCC,即使有GCC,也不见得能够编译它,因为Redis如果版本比较新,是不兼容低版本的GCC的,因此我们首先需要安装或者升级最新版的GCC,接下来我们升级GCC,升级需要的指令步骤如下:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
首先我们运行指令yum -y install centos-release-scl
:
如图所示的话,就是安装成功了。之后我们运行yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
:
同理,如图所示的话,就算成功了,我们继续执行scl enable devtoolset-9 bash
指令:
接下来是echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
:
都执行完后,我们使用gcc -v
指令查看GCC版本,使用这些指令可以让GCC升级到大版本为9的版本:
可见已经成功了。至此GCC升级完成。
3.安装Redis
在升级完成GCC之后,我们就可以愉快的安装Redis了,Redis的安装并不是特别复杂,更需要注意的是配置文件的设置以及端口号的配置。需要说明的是:问题一旦上升到服务器这个概念,它就不再简单了,安全问题将是一个严重的问题。我们在使用个人电脑的时候,实际上很少被黑,只要你不胡乱操作,电脑一般不会中病毒,也不会被黑客攻击,因为我们大部分人的个人电脑没啥被黑的价值,同时隐藏的也非常好,非常重要的一点就是我们的计算机的IP地址是动态的,公网地址经常变化,因此就更难被锁定了。但是服务器不是这样,服务器的公网地址在很长一段时间内,都是固定的,而且服务器通常具备更高的算力,被黑之后有更大的利用价值,因此我们租用的云服务器,如果防火墙端口开放不当,就很容易被黑,Redis的默认端口6379,就相当容易被攻击并利用,为了解决这个问题,我们通常会给Redis设置密码,或者索性通过配置文件,为Redis设置另外一个端口,接下来,我们来一步一步的安装Redis。
3.1.Redis下载
Redis的下载方式同上边的Java一样,有多种方式。我们通常使用一种叫做wget的工具下载,wget+下载链接就是下载格式,如:wget http://download.redis.io/releases/redis-6.0.8.tar.gz
,需要注意的是,wget后边的下载链接即使是在Windows中也是可以使用的,因为其就是一个普通的下载链接,不信的话我们可以将其放到浏览器的搜索栏中查询一下:
按下回车键,就会出现下面的弹框:
现在我们可以选择使用自己的个人计算机下载后传输上去,也可以选择直接使用wget在Linux上下载,这里我们使用Linux使用指令直接下载:
3.2.Redis解压
下载完成后,我们可以在下载位置看到它,之后如下图所示,我们将其解压:
如下图所示的红框中,就是解压好的Redis:
3.3.将Redis放进便于管理的目录
我们通常要将Redis放到/usr/local/redis
目录,这是为了方便管理,因此我们使用移动命令将其放入这个位置,移动命令为:mv redis-6.0.8 /usr/local/redis
,这里的路径可以是绝对路径也可以是相对路径,绝对路径的写法如下(绝对路径可以使用pwd
指令获取到):
mv /opt/redis-6.0.8 /usr/local/redis
3.4.使用GCC编译Redis安装程序并安装
我们执行这个命令之后,就需要进入到Redis的真实目录中去操作了,也就是usr下的local下的redis里,我们使用指令cd /usr/local/redis
直接进入到这个目录下,可以看见内部是这样的:
之后我们要进行一个编译并安装的过程,Redis下载下来的安装程序是C语言源码,因此我们需要先将其编译成机器码,然后再运行安装程序,安装Redis,编译使用make
指令即可完成:
在漫长的编译过程完成之后,我们就可以安装这个Redis软件了,输入指令make PREFIX=/usr/local/redis install
,即可安装,其中/usr/local/redis
参数是安装路径,这个路径可以是任意的,但是我们通常喜欢安装好软件之后将安装程序删除掉,这里由于安装路径和安装程序的路径重合了,因此这个操作正好能把安装程序顶走,故我们直接在当前目录下安装:
3.5.进行配置文件的更改及尝试运行
上图为安装步骤,在安装完成之后,我们就需要进入Redis的安装路径中,修改一些配置文件的参数,以保证这个Redis能够正常运行,我们需要在Redis目录下,编辑redis.conf
配置文件,使用vim redis.conf
即可编辑:
如果想通过其他计算机远程访问这个服务器上的Redis,我们首先需要将bind 127.0.0.1
注销掉,或者换成 bind 0.0.0.0
,这是因为该配置项指定了可以访问该Redis服务的IP地址,简单来说就是访问者白名单,我们都知道127.0.0.1
指的是本机地址,我们如果想远程访问,比如将这里填上我们自己的IP,但是如果访问者比较多,嫌麻烦,或者是在学习阶段,不考虑安全因素的情况下,我们可以将这里注释掉或者改成bind 0.0.0.0
,0.0.0.0
也表示任意地址。我姑且将这里先注销:
之后我们关闭其保护模式,在如下图所示的配置项中,我们将yes改为no,改为protected-mode no
,接触保护模式之后这个服务的端口就可以被访问了:
修改完成如下图所示:
之后我们修改这个服务的端口,6379端口是其默认端口,极易受到攻击,因此我们改成一个其他的没有被占用的端口,这样一来就会安全许多,这里大家想怎么该都行:
在此我改成了9999:
最后我们设置密码,密码设置配置项为requirepass XXX
,其中XXX部分为密码具体的值,比如我们可以设个12345:
当然不建议设置这么简单的密码,设置一个复杂的密码,加上修改了端口号,基本上就能杜绝大部分恶意攻击了。密码的配置项可以在任意位置。在此之后我们就可以启动服务了,如何启动服务呢?我们可以在redis目录下,使用指令:./bin/redis-server ./redis.conf
来启动服务,这个指令的意思就是让当前在bin目录下的redis-server脚本按照在当前目录下的redis.conf配置文件配置的那样执行,需要注意的是,不仅仅在bin目录下有着启动服务的脚本,在src目录下同样有着启动目录的脚本,如图:
这意味着在src目录下,我们也是可以启动服务的,当然我们仍然需要设置配置文件,在src目录内外都可以启动服务,只不过脚本命令的第一个参数的路径地址要变一下,在src目录下,这个指令为:./redis-server ../redis.conf
,接下来让我们试试看:
3.6.解决运行中的守护进程模式问题
由上面的图片可见已经启动成功,接下来让我们测试一下端口,看看redis是否已经占用上了这个端口并持续不断地提供服务,这里需要注意的是在使用该指令查看端口占用情况之前,先保证该端口是被打开的,因此我们使用firewall-cmd --query-port=9000/tcp
(我把端口改为了9000,这个可以随意改,在测端口时如实填写自己的端口就行了)指令查看端口是否被打开,如果打开了会输出一个yes,否则会输出no,我这里显示已经打开了,我们按ctrl+c
来中断当前界面,调出命令行,输入指令:lsof -i :9000
。
结果让我们大失所望,这个端口显示我们什么服务也没有启动,这是为什么呢,其实在我按ctrl+c
中断的时候,日志输出就给出了答案,让我们详细来看看:
我发现,在我按下中断快捷键之后,红色剪头指向的部分出现了几个shutdown
,在最后又输出了一个:Redis正在准备退出,拜拜...还挺有礼貌,之后我的命令行输入位置就出现了,我在此之后才输入的端口查看指令。这是为什么呢?这是因为刚才的启动方式,是Redis的显式启动方式,用上边那种启动方式启动的Redis,是以显式的形式运行的,在这种模式运行下,只要输入一个中断指令然后去干别的,Redis就会直接关闭。进程的这种模式也被称为非守护进程,在初学期间我们可以理解为:不能后台运行的进程,实际生活中我们见到的这种进程实际上不多,大部分常见电脑软件基本上都可以后台运行,如果不是,那我们在听音乐的时候如果想和别人聊天,便点出聊天软件的话,便不能听音乐了,这实在不是一件愉快的事情。与非守护进程相对应的是守护进程,守护进程基本上可以理解为:可以后台运行的进程,我们在使用Redis的时候当然是还想让这个服务器干别的,因为它仅仅是一个服务而已,我们很少直接在本地操作它,因此我们在启动的时候,应该注意使用守护进程的方式对其进行启动,如何以守护进程的方式启动它呢,具体有两种方式:1.使用&符号提示程序;2.修改配置文件中的daemonize项
,我们逐一尝试:
首先我们来试试&符号,具体使用方式为,在启动脚本的紧后边加上一个&: ./redis-server& ../redis.conf
启动后我们继续中断一次:
我们惊喜的发现,在中断之后并没有刚才那种提示关闭的信息,接下来我们使用lsof -i 9000
测试端口:
还是没有,这是为什么?我们再看看上边的启动界面图会发现,使用这种方式启动的Redis的端口竟然不是9000,而是6379,我们的配置失效了。我们现在测试6379端口:
发现进程果然在这里,我们先使用指令关闭这个进程,关闭进程的指令为./redis-cli -h 127.0.0.1 -p 6379 shutdown
,关闭后它会显示和刚才强制中断时一样的信息,我还注意到了Redis的硬盘保存日志,这实际上反应出了Redis的持久化机制:
不管怎么说我们已经关闭了进程,接下来继续研究其守护线程模式,我们既想让它以守护线程的模式运行,又不想让它在6379端口运行,这应该怎么办呢?我们只能使用第二个方法,那就是修改配置文件的daemonize
项,我们使用vim编辑器打开配置文件,进行如图的修改,我们将daemonize项改为yes即可:
进行这样的修改之后,使用指令./redis-server ../redis.conf
就能直接以守护进程模式启动Redis的后台服务,并且不进行上面那种界面显示,同时是按照我们的配置文件的端口运行,而不是使用默认端口,如图:
至此,Redis安装完毕。对于守护进程,守护线程,以及Redis的具体用法这里暂时先不做介绍。
4.安装Zookeeper
4.1.下载或上传Zookeeper安装包
使用wget或者直接上传的方式都可以获取zookeeper安装包,这里我们选择上传的方式,关于下载方式前边也讲了不少,因此这里我们直接上传zookeeper安装包,我们在自己已知的目录下,创建zookeeper的安装目录,这个路径地址任意,只要能记住在哪就行,这里我在local目录下创建zookeeper目录,和Redis同级,创建好后进入其中,上传zookeeper:
如图,我已经上传好了:
之后我们解压这个包,解压完之后进入这个目录:
4.2.创建data目录
我们创建一个data目录,存放zookeeper运行中产生的数据,创建好后进入data,获取data目录的地址,在之后配置路径的时候很有用:
4.3.编辑配置文件
我们先进入到zookeeper的配置文件目录conf
中去:
之后我们将其复制一份,以确保有备份,我们使用cp zoo_sample.cfg zoo.cfg
,将原来的配置文件复制一份新的出来:
之后我们进入到这个配置文件中去编辑它,在此我们需要编辑的配置项为datadir,也就是数据目录的意思,这里原本是zookeeper默认的数据目录,我们将这里的值修改为我们之前自己新建的那个data目录,因为之前我已经赋值了其路径,这里直接粘贴即可,修改完之后就可以退出了:
之后我们就可以启动zookeeper了,我们退出到zookeeper的安装目录下,并进入到bin中,bin中有其启动的脚本,我们输入./zkServer.sh start ../conf/zoo.cfg
指令启动这个脚本,这个指令的意思是执行启动脚本,并按照conf目录下的zoo.cfg配置文件中指定的模式执行:
首先日志输出中出现了成功运行的提示,之后我们使用lsof -i :2181
查看其端口进程情况,也发现了进程的存在,说明zookeeper启动成功。至此,zookeeper安装结束。