Linux上的软件安装的方式大体上说有四种:
二进制发布包
软件已经针对具体平台编译打包发布,只要解压,修改配置即可。
RPM包
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。
Yum在线安装
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。
源码编译安装
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。
上传与下载工具介绍(三种):
- xftp
可以去官网下载(顺手可以把Xshell也下载了)
lrzsz
我们可以使用yum安装方式安装 yum install lrzsz
注意:必须有网络
可以在crt中设置上传与下载目录
上传:
下载
sftp
使用
alt + p
组合键打开sftp窗口使用put 命令上传
使用get命令下载
默认下载位置在当前计算的的文档位置
教程分六个部分
第一部分:下载安装jdk
第二部分:下载安装mysql
第三部分:下载安装tomcat
第四部分:下载安装redis
第五部分:下载安装nginx
第六部分:下载安装rabbitmq(附:配置防火墙)
第一部分:下载安装jdk
1、在官网下载自己所需版本的jdk(linux版)
2、卸载linux可能自带的open-JDK
1 | 查看jdk版本 |
第一次查看安装的jdk信息或最后一次查看安装的jdk信息没有open-jdk后,可以上传下载的jdk
3、上传安装jdk
我们通常将软件安装到/usr/local,在该目录下新建一个jdk文件夹。用Xftp将下载的jdk上传到jdk文件夹中
1 | 直接解压就可以 |
4、配置JDK的环境变量:
1 | vim /etc/profile |
第二部分:下载安装mysql
本部分参考开心跳蚤的Linux下安装mysql-5.7.24这篇博客,加上遇到的坑和自己的一些补充。
正。
1、注意:
注意1:本文档讲解安装版本为mysql-5.7.24,对于5.7.24之后的版本,不适用此说明文档,主要原因在于之后版本的mysql配置文件的目录位置和结构有所改变,使用此说明可能会出现找不到配置文件或者配置后不生效的情况。
注意2:安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。
2、安装前准备
1、检查是否已经安装过mysql,执行命令
1 | [root@localhost /]# rpm -qa | grep mysql |
从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令
1 | [root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64 |
再次执行查询命令,查看是否删除
1 | [root@localhost /]# rpm -qa | grep mysql |
2、查询所有Mysql对应的文件夹
1 | [root@localhost /]# whereis mysql |
删除相关目录或文件
1 | [root@localhost /]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql |
验证是否删除完毕
1 | [root@localhost /]# whereis mysql |
3、检查mysql用户组和用户是否存在,如果没有,则创建
1 | [root@localhost /]# cat /etc/group | grep mysql |
4、从官网下载是用于Linux的Mysql安装包
1 | [root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz |
也可以直接到 mysql官网 选择对应版本进行下载。
3、安装Mysql
1、在执行wget命令的目录下或你的上传目录下找到Mysql安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
执行解压命令
1 | [root@localhost /]# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz |
解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到**/usr/local/下,并将文件夹名称修改为mysql**。
如果**/usr/local/下已经存在mysql**,请将已存在mysql文件修改为其他名称或删除,否则后续步骤可能无法正确进行。
1 | [root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/ |
如果**/usr/local/下不存在mysql**文件夹,直接执行如下命令
1 | [root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql |
2、在**/usr/local/mysql**目录下创建data目录
1 | [root@localhost /]# mkdir /usr/local/mysql/data |
3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
1 | [root@localhost /]# chown -R mysql:mysql /usr/local/mysql |
4、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
1 | [root@localhost /]# cd /usr/local/mysql/bin |
第四步可能出现问题:
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查
1 | [root@localhost bin]# rpm -qa|grep libaio |
运行命令后发现系统中无该链接库文件,用yum下载libaio-devel.x86_64
1 | [root@localhost bin]# yum install libaio-devel.x86_64 |
安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:
用yum下载numactl执行如下命令后
1 | [root@localhost bin]# yum -y install numactl |
执行无误之后,再重新执行第4步初始化命令,无误之后再进行第5步操作!
5、运行初始化命令成功后,输出日志如下:
记录日志最末尾位置**root@localhost:**后的字符串,此字符串为mysql管理员临时登录密码。
6、编辑配置文件my.cnf,添加配置如下:
1 | [root@localhost bin]# vi /etc/my.cnf |
lower_case_table_names
:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server
:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table
:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;
7、测试启动mysql服务器
1 | [root@localhost /]# /usr/local/mysql/support-files/mysql.server start |
显示如下结果,说明数据库安装并可以正常启动
异常情况
如果出现如下提示信息
1 | Starting MySQL.180306 16:26:49 mysqld_safe error: log-error set to '/var/lib/mysql/mysql.log', however file don't exists. Create writable for user 'mysql'. |
1、查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令
1 | #查询服务 |
2、如果不存在,则是因为没有路径也没有权限,所以创建此路径并授权给mysql用户,执行如下命令:
1 | 创建此路径 |
3、此时可能会出现如下错误:
1 | Starting MySQL.170331 10:18:30 mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists. |
启动MySQL服务时,会优先在/etc/目录下查找my.cnf,可以把/etc/my.cnf重命名,执行如下命令:
1 | [root@VMUest ~]# ll /etc/my.cnf |
MySQL服务顺利启动。
8、添加软连接,并重启mysql服务
1 | [root@localhost /]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql |
9、登录mysql,修改密码(密码为步骤5生成的临时密码)
1 | [root@localhost /]# mysql -u root -p |
注意:输入密码时,Enter password 后面不会有任何显示,此时实际是输入成功的,输入完密码后直接回车即可。或使用:mysql -u root -p 密码 ,回车后,即可直接进入数据库
10、开放远程连接
1 | use mysql; |
11、设置开机自动启动
1 | 1、将服务文件拷贝到init.d下,并重命名为mysql |
第三部分:下载安装tomcat
1、在官网下载tomcat
2、上传安装tomcat
将软件安装到/usr/local,在该目录下新建一个tomcat文件夹。用Xftp将下载的tomcat上传到tomcat文件夹中
将上传的tomcat解压
1 | tar –zxvf ***** |
在tomcat/bin目录下执行 startup.sh(注意防火墙)
在浏览器访问主机对应ip加上8080端口可以访问到tomcat页面(那只猫)
也可以查看Tomcat进程:
1 | ps aux | grep tomcat |
第四部分:下载安装redis
1、安装gcc-c++
redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境。
输入命令:
1 | yum install gcc-c++ |
输入y确认下载
输入y确认安装
安装 gcc 成功!
2、在官网下载所需的redis
3、上传编译安装tomcat
解压上传的tomcat
1 | tar -xzvf redis-****.tar.gz |
编译安装
切换至程序目录,并执行make命令编译:
1 | ll |
执行安装命令
1 | make PREFIX=/usr/local/redis install |
make install安装完成后,会在/usr/local/bin目录下生成下面几个可执行文件,它们的作用分别是:
redis-server:Redis服务器端启动程序
redis-cli:Redis客户端操作工具。也可以用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具
redis-check-aof:数据修复工具
redis-check-dump:检查导出工具
4、配置redis
复制配置文件到/usr/local/redis/bin目录:
1 | cd redis-*** |
5、启动redis
进入redis/bin目录
1 | cd redis/bin |
启动redis服务端(注意命令前面有.
)
1 | ./redis-server redis.conf |
克隆新窗口,启动redis客户端(注意命令前面有.
)
1 | ./redis-cli |
第五部分:下载安装nginx
1、安装前的准备
需要安装 gcc 的环境【前面安装redis时安装过,此步省略】
第三方的开发包:
PCRE
PCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。
1 | yum install -y pcre pcre-devel |
注:pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。
- zlib
zlib 库提供了很多种压缩和解压缩的方式,nginx 使用 zlib 对 http 包的内容进行 gzip,所以需要在 linux 上安装 zlib 库。
1 | yum install -y zlib zlib-devel |
- OpenSSL
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 linux安装 openssl 库。
1 | yum install -y openssl openssl-devel |
2、在官网下载Nginx
3、Nginx上传安装
把 nginx 的源码包上传到 linux 系统的/usr/local/nginx 目录下
解压缩
1 | tar zxvf nginx-***.tar.gz |
进入nginx-***目录 使用 configure 命令创建一 makeFile 文件(注意命令前面有.
)
1 | ./configure \ |
执行后可以看到Makefile文件
Makefile是一种配置文件, Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 configure参数
./configure \
--prefix=/usr \ 指向安装目录
--sbin-path=/usr/sbin/nginx \ 指向(执行)程序文件(nginx)
--conf-path=/etc/nginx/nginx.conf \ 指向配置文件
--error-log-path=/var/log/nginx/error.log \ 指向log
--http-log-path=/var/log/nginx/access.log \ 指向http-log
--pid-path=/var/run/nginx/nginx.pid \ 指向pid
--lock-path=/var/lock/nginx.lock \ (安装文件锁定,防止安装文件被别人利用,或自己误操作。)
--user=nginx \
--group=nginx \
--with-http_ssl_module \ 启用ngx_http_ssl_module支持(使支持https请求,需已安装
openssl)
--with-http_flv_module \ 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)
--with-http_stub_status_module \ 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
--with-http_gzip_static_module \ 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
--http-client-body-temp-path=/var/tmp/nginx/client/ \ 设定http客户端请求临时文件路径
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ 设定http代理临时文件路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 设定http fastcgi临时文件路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 设定http uwsgi临时文件路径
--http-scgi-temp-path=/var/tmp/nginx/scgi \ 设定http scgi临时文件路径
--with-pcre 启用pcre库openssl)
--with-http_flv_module \ 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)
--with-http_stub_status_module \ 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工作状态)
--with-http_gzip_static_module \ 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)
--http-client-body-temp-path=/var/tmp/nginx/client/ \ 设定http客户端请求临时文件路径
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \ 设定http代理临时文件路径
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ 设定http fastcgi临时文件路径
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ 设定http uwsgi临时文件路径
--http-scgi-temp-path=/var/tmp/nginx/scgi \ 设定http scgi临时文件路径
--with-pcre 启用pcre库
4、编译
1 | make |
5、安装
1 | make install |
6、Nginx启动与访问
启动nginx 之前,上边将临时文件目录指定为/var/temp/nginx/client, 需要在/var 下创建此 目录
1 | mkdir /var/temp/nginx/client -p |
进入到Nginx目录下的sbin目录
1 | cd /usr/local/ngiux/sbin |
输入命令启动Nginx(注意命令前面有.
)(注意防火墙)
1 | ./nginx |
在浏览器访问主机对应ip(端口默认是80)可以访问到nginx页面
也可以查看nginx进程:
1 | ps aux|grep nginx |
关闭 nginx:
./nginx -s stop
或者
./nginx -s quit
重启 nginx:
1、先关闭后启动。
2、刷新配置文件:
./nginx -s reload
第六部分:下载安装rabbitmq
1、在官网下载rabbitmq
注意要下载rabbitmq对应的Erlang、socat
2、安装依赖环境
在线安装依赖环境
1 | yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz |
3、上传(以下按照你们下载的版本为主)
erlang-18.3-1.el7.centos.x86_64.rpm
socat-1.7.3.2-5.el7.lux.x86_64.rpm
rabbitmq-server-3.6.5-1.noarch.rpm
1 | # 安装 |
如果出现如下错误
说明gblic 版本太低。我们可以查看当前机器的gblic 版本
1 | strings /lib64/libc.so.6 | grep GLIBC |
当前最高版本2.12,需要2.15.所以需要升级glibc
使用yum更新安装依赖
1
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
下载rpm包
1
2
3
4
5
6
7wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-utils-2.17-55.el6.x86_64.rpm &
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-static-2.17-55.el6.x86_64.rpm &
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm &
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm &
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm &
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm &
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/nscd-2.17-55.el6.x86_64.rpm &安装rpm包
1
sudo rpm -Uvh *-2.17-55.el6.x86_64.rpm --force --nodeps
安装完毕后再查看glibc版本,发现glibc版本已经到2.17了
1
strings /lib64/libc.so.6 | grep GLIBC
4. 安装RabbitMQ
1 | # 安装 |
5. 开启管理界面及配置
1 | # 开启管理界面 |
6. 启动(注意防火墙)
1 | service rabbitmq-server start # 启动服务 |
- 设置配置文件
1 | cd /usr/share/doc/rabbitmq-server-3.6.5/ |
在浏览器访问主机对应ip加上15672端口可以访问到RabbitMQ页面(用户名密码默认为guest)
出现访问不到RabbitMQ页面问题
在控制台输入:
1 | ps -ef | grep rabbitmq |
命令含义:从当前所有进程中查找是否含有rabbitmq进程
如果有内容显示,则说明 Rabbitmq启动成功
否则,重新启动 Rabbitmq
2. 检查能否从 Linux 本地中访问到 Rabbitmq
从控制台输入命令:
1 | wget http://localhost:15672 |
命令含义:访问 http://localhost:15672
否则,检查 Rabbitmq端口号是否正确
3. 检查 Rabbitmq启动端口号
Rabbitmq 默认的启动端口号是 15672,如果你没有对 Rabbitmq 的配置文件做修改的话应该是没有问题的
输入命令:
1 | ps -ef | grep rabbitmq |
命令含义:查看 Rabbitmq进程信息
查看进程号(图中红色框位置)
接着输入命令:(注:grep 后跟的就是上一步所查的进程号)
命令含义:查看 9810进程占用的端口号
图中红色框位置即是你的 Rabbitmq的启动端口号
4. 检查远程访问的 ip 地址是否正确
如果从 Linux 本地可以成功访问 Rabbitmq服务器,而从 Windows(主机) 上无法访问,那么首先检查远程访问的 ip 地址是否正确
在 Liunx 控制台上输入命令:
1 | ifconfig |
图中位置即是 Linux 的 ip 地址,若此处没出现ens33的ip地址,可能是网络配置没配置好,解决方法具体请见https://www.cnblogs.com/zipxzf/p/11237269.html
5. 检查 Linux 防火墙是否开放 Rabbitmq端口号
参考的是zipxzf的在Centos7中,从主机 Windows 上无法远程访问 Linux 上rabbitmq的解决方法这篇博客,加上自己的一些补充
当window能够ping通linux的ip,而还是不能通过ip在windows上访问linux的一些服务,如tomcat、mysql、nginx、rabbitmq等服务,最可能的原因是linux的防火墙问题。
如果你没有修改过 Linux 防火墙配置的话,那么 Rabbitmq 端口号一定是被禁用了 ,因为 Linux 防火墙默认只开启 22 号端口。
你需要设置防火墙配置,开放 Rabbitmq的端口号 (注:网上有其他解决方法说直接关闭防火墙,这种方法很不可取)
我的 Linux 版本是 CentOS 7 ,在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,如果要添加范围例外端口 如 1000-2000
语法命令如下:启用区域端口和协议组合
1 | firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>] |
此举将启用端口和协议的组合。端口可以是一个单独的端口
实际命令如下:
添加
1 | firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) |
重新载入
1 | firewall-cmd --reload |
查看
1 | firewall-cmd --zone=public --query-port=80/tcp |
删除
1 | firewall-cmd --zone=public --remove-port=80/tcp --permanent |
此处的解决方案是开放 15672端口号只需输入命令:(注:若python无法连接Rabbitmq,同理,则需要开放5672端口号)
1 | firewall-cmd --zone=public --add-port=15672/tcp --permanent |
然后重启防火墙,即可解决:
1 | firewall-cmd --reload |
成功访问rabbitmq管理页面
6、配置防火墙
1 | 查看防火墙状态 |
需要开放的端口号:
mysql:3306
tomcat:8080
redis:6379
nginx:80
RabbitMQ:15672,25672,5672