JDK

先从Oracle官网下载JDK Linux版本的安装包,上传到服务器,这里推荐在服务器中创建一个目录/software,可以将所有软件的安装包放在这个目录下(或者是/opt目录下),将软件包解压在/usr/local/...目录下进行安装

  1. 创建解压目录
mkdir /usr/local/java
  1. 解压
tar -zxvf 安装包名称  -C  /usr/local/java

可以修改解压后的目录名,因为默认解压后的目录名会带上版本号,例如'jdk1.8.231'不太好记,按需处理吧

  1. 配置环境变量,编辑/etc/profile文件
vim /etc/profile

# 在文件末尾输入以下内容
export JAVA_HOME=/usr/local/java/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
#(注意:JAVA_HOME的路径是你实际解压后的JDK的路径,记着修改) # 保存退出文件,刷新配置文件,让配置生效
source /etc/profile # 验证下
java -version

MySQL

MySQL下载 Linux版本

验证当前系统是否存有mysql相关的组件, 如果存在建议卸载

# 查看当前系统是否存在mysql
rpm -qa | grep mysql # 卸载mysql
rpm -e mysql
# 如果该组件存在其他依赖,可以使用强制卸载(不推荐)
rpm -e --nodeps mysql
  1. 创建解压目录和data目录(存放数据库数据文件),以及日志文件夹
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/log
  1. 解压
tar -zcvf 安装包名称 -C /usr/local/mysql
  1. 创建mysql用户组和用户 MySQL需要特定的用户mysql以及特定的用户组mysql
# 创建用户组mysql
groupadd mysql
# 创建用户mysql 并并指定到mysql组下
useradd -g mysql mysql
  1. 给第一步创建的三个目录设置mysql权限 -R参数标识递归给该目录以及子目录设置权限
chmod -R mysql:mysql /usr/local/mysql
  1. 进入`/usr/local/mysql/mysql解压后目录文件夹并执行该命令
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql解压后目录 --datadir=/usr/local/mysql/data

命令的意思是初始化 并制定user、mysql目录和data目录

初始化之后会在/usr/local/mysql/data这个数据目录下生成文件,如果需要再次初始化记得把这些文件删除了(如果已经创建数据库和表,不要轻易修改这个目录)

同时初始化之后会给一个root默认的密码,需要暂时记住这个密码,之后登录的时候会使用

  1. 配置/etc/my.cnf(my.cnf是mysql的配置文件)
vim /etc/my.cnf

---------------------------------------
[mysqld]
# 设置mysql安装目录
basedir=/usr/local/mysql/mysql-5.7.28
# 设置mysql数据库的数据存放目录
datadir=/usr/local/mysql/data
# 服务端字符集默认为latin1
character-set-server=utf8
# 忘记密码时可取消以下注释,无密码登录
# skip-grant-tables
socket=/usr/local/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid [client]
socket=/usr/local/mysql/mysql.sock #
# include all files from the config directory
#
!includedir /etc/my.cnf.d
--------------------------------------------
这里贴一份my.cnf配置,basedir/datadir 需要配置到对应的位置,注意不一致需要修改
socket元素必须有,在mysqld,client下都需要一份
所有配置项使用的目录都需要有mysql权限,所以之前需要给目录赋权
  1. 将mysql加入/etc/init.d启动引导
sudo cp /usr/local/mysql/mysql-5.7.28/support-files/mysql.server /etc/init.d/mysql

并配置/etc/init.d/mysql 中的basedir和datadir,配置路径同my.cnf

vim /etc/init.d/mysql
  1. 配置profile环境变量, 方法同JDK
vim /etc/profile

export MYSQL_HOME=/usr/local/mysql/mysql-5.7.28
export PATH=$PATH:$MYSQL_HOME/bin source /etc/profile
  1. 启动mysql服务
# 启动mysql
#service mysql start # 查看mysql状态
#service mysql status # 停止mysql
#service mysql stop # 退出mysql命令窗口
#exit # 查看3306端口是否已被系统监听
netstat -anlp | grep 3306
# 如果没有监听使用如下命令 CentOS 6.5
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service firewalld restart # 重启防火墙
  1. 登录并修改初始密码
mysql -u root -p
输入之前截图的初始秘密 # 修改默认root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'zliuwrnfNIG'; -- 如果设置的密码过于简单, 如root 会被阻止修改
# 如果希望设置简单密码,执行如下命令后再alter user
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1; # 授权可视化工具的远程登录
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root'; -- 设置root用户的远程登录密码为root 赋予所有权限 %代表所有ip可访问
mysql>flush privileges; -- 刷新配置
  1. 远程连接 Linux同样存在防火墙,有些购买的云主机会关闭防火墙,一般自己安装的默认防火墙是开启的
# 查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state # 关闭firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动 # 开启firewall
systemctl start firewalld.service
systemctl enable firewalld # 重启防火墙
service firewalld restart # 允许某个端口访问
# 公布端口号 CentOS 7
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 公布完端口后,需要重启防火墙
firewall-cmd --reload # 开机自启动
chkconfig --add mysql # 加入到系统服务
chkconfig mysql on # 自动启动

接下来就可以通过本地navicat之类的工具进行远程连接了

参考文档

https://www.jb51.net/article/151403.htm
https://www.cnblogs.com/fanshudada/p/9781794.html
https://www.cnblogs.com/hf8051/p/4991699.html
https://www.cnblogs.com/zuokun/p/10577706.html # 安装libaio
https://blog.csdn.net/m0_38113129/article/details/79056047 # 安装vim
https://blog.csdn.net/ariestina/article/details/84027468

Nginx

拷贝解压这里略过。因为Nginx使用C++语言开发,安装Nginx需要先将官网下载的源码进行编译,编译依赖gcc环境;所以需要安装gcc

# gcc环境
yum -y install gcc-c++ #安装Nginx依赖环境,-y表示所有提示默认选择y
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel #进入解压文件夹 编译并安装
./configure
make install

编译安装之后会自动在/usr/local路径下生成nginx目录, 进入/nginx/sbin 可以启动

# 在sbin目录下启动
./nginx # 指定配置文件启动
./nginx -c /etc/nginx/nginx.conf # 停止
nginx -s stop # 重载
nginx -s reload ## 注意修改nginx.cfg文件之后一定要用测试命令测一下再重载
nginx -t # 查看nginx配置信息 包括安装目录, conf-path配置文件路径
nginx -V

默认防火墙也没有开放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

Redis

redis下载列表 下载需要的redis版本

拷贝解压这里略过。因为redis也使用C++语言开发,编译依赖gcc环境;所以需要安装gcc,已经安装过的可以忽略

yum -y install gcc-c++

进入redis解压目录(我这里是/usr/local/redis/redis-xxx)进行编译安装

# 编译
make # 安装
make PREFIX=/usr/local/redis/redis-xxx install
# 安装之后会在这个目录下生成一个bin目录, 启动停止redis都需要进入这个目录

拷贝redis-xxx目录下的配置文件redis.conf 放在redis-xxx/bin,并修改如下配置

# reids后台运行
1. 将daemonize no 改成daemonize yes # 以下两项是为了远程连接 2. bind 127.0.0.1注释掉,即变更为:#bind 127.0.0.1 3. protected-mode yes修改为protected-mode no

启动redis

# 进入/redis-xxx/bin目录 ./表示当前目录下
./redis-server redis.conf # 停止redis服务
./redis-cli shutdown

开放6379端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

Tomcat

Tomcat官网这里下载对应的Linux版本,并上传到服务器

  1. 解压
tar -zxvf apache-tomcat-8.5.50.tar.gz
  1. 因为解压的时候没有带上-C参数指定解压目录,所以会默认解压在当前目录,还是cp到/usr/local方便管理, -r 参数表示递归复制
cp -r apache-tomcat-8.5.50 /usr/local
  1. 进入bin目录下执行startup.sh
./startup.sh
  1. 开放端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

yum安装方式

CentOS使用yum命令安装更为简单,就相当于在应用商店直接下载安装包自动安装,我们不需要再去每个软件得官网下载对应的安装包,安装之后只需要配置下自启动,打开端口号之类操作即可。Ubuntu可以使用apt命令安装,apt安装方式使用时自行百度,这里主要记录yum方式

yum常见命令

# 参看已通过yum安装的软件
yum list installed xxx* # 搜索当前yum源中的软件及版本
yum list | grep xxx* # 卸载软件
yum remove xxx # 安装软件
yum -y install xxx # 升级
yum -y update:升级所有包同时也升级软件和系统内核(慎用)
yum -y upgrade:只升级所有包,不升级软件和系统内核 (如果需要升级软件, 优先使用) # 更换yum源
https://www.cnblogs.com/pfdltutu/p/10524864.html

yum安装软件,默认目录及配置文件位置(供参考)

# mysql配置文件及数据库目录
配置文件 /etc/my.cnf 数据库目录 /var/lib/mysql/ # Redis配置文件
/etc/redis.conf # Nginx配置文件
/etc/nginx/nginx.conf # JDK目录
/usr/lib/jvm # RabbitMQ安装目录及一些命令
/usr/lib/rabbitmq
查看插件命令:rabbitmq-plugins list 查看用户命令:rabbitmqctl list_users

yum仓库里的软件版本不一定是最新的,也可能没有特定的版本(跟yum源有关),如果需要安装指定版本的软件,可能还需要使用上面的去官网下载包,手动安装配置

常用Linux软件安装的更多相关文章

  1. Linux软件安装,RPM与YUM

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843955.html ...

  2. Linux基础学习(6)--Linux软件安装

    第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...

  3. Linux软件安装中RPM与YUM 区别和联系

    .tc-nav-row{ height:38px; margin: 8px 15px; } .tc-nav-tab{ text-align: center; color:#333333; line-h ...

  4. Linux软件安装——软件包

    Linux软件安装——软件包 摘要:本文主要学习了Linux下软件安装的相关知识. 软件包 简介 Linux下的软件包众多,且几乎都是经GPL授权.免费开源(无偿公开源代码)的.这意味着如果你具备修改 ...

  5. Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)

    apt list *python* Nosee123关注赞赏支持   Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...

  6. Linux软件安装管理之——dpkg与apt-*详解

    Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件安装管理之--源码安装详解> - -<Linux软件安装管 ...

  7. Linux 软件安装位置选择指南

    Linux 软件安装   Linux 下安装软件不像 Windows 下安装这么简单,Windows 下会自动选择合适安装路径,而 Linux 下安装路径大部分完全由自己决定,我可以将软件安装到任意可 ...

  8. 第五部分 linux 软件安装RPM SRPM与YUM

    第五部分  linux  软件安装RPM    SRPM与YUM   软件管理员简介 RPM与DPKG两大主流 rpm: redhat       centos     suse    命令:yum ...

  9. Unix/Linux 软件安装

    Unix/Linux 软件安装 首先我们明确.在Unix like的机器上,一套软件并不唯独一个程序,而是一堆程序代码文件. 比如main.c,haha.c,sin_value.c这三个源码文件. 1 ...

随机推荐

  1. .Net MVC伪静态实现

    伪静态的好处就不多说了   这里说一下Mvc具体实现的方法 第一步 打开根目录的Web.config 给webServer 节点下的modules 添加属性runAllManagedModulesFo ...

  2. PHP之面向对象(下)

    1,类的创建 class 2,对象的创建 new关键字 3,成员的添加 修饰符 添加成员需要三个修饰符 public 公开的 定义公共的属性和方法,类的外部,内部,子类都可以使用 protected ...

  3. 如何设计提高服务API的安全性(一)基础介绍

    场景 现今越来越多公司提供了Sass平台服务,大部分也直接提供API.如快递鸟.微信Api.云服务.如何保证这些服务的安全性是一门重要的课题.如快递跟踪.机票查询等很便捷地影响着我们d的生活,对这些技 ...

  4. 利用Python读取图片exif敏感信息

    众所周知,现在很多的照相机等软件,拍摄会有选项,是否包含位置信息等. 当然有的人会说,我在微信中查看图片exif信息并没有啊,这是因为你发送到微信服务器的时候,微信帮你完成了保密工作. 常见的图片中包 ...

  5. 【转载】Gradle学习 第三章:教程

    转载地址:http://ask.android-studio.org/?/article/15 3.1. Getting Started 入门The following tutorials intro ...

  6. Android源码分析(十五)----GPS冷启动实现原理分析

    一:原理分析 主要sendExtraCommand方法中传递两个参数, 根据如下源码可以知道第一个参数传递delete_aiding_data,第二个参数传递null即可. @Override pub ...

  7. OGG 源端与目标端 约束不一致

    需求: 请在生产库执行下面的脚本 --删除主键并新增复合主键              alter table XXXXX  drop constraint PK_USERCHNL cascade; ...

  8. django framework插件使用1

    安装 REST框架要求以下内容: Python(3.5.3.6.3.7) Django(1.11.2.0.2.1.2.2) pip install djangorestframework pip in ...

  9. c# MVC5(一) 初步认识以及新建mvc

    一:MVC5初始 1:广义MVC(Model--View-Controller): V是界面 : M是数据和逻辑 : C是控制,把M和V链接起来: 是程序设计模式,一种设计理念,可以有效的分离界面和业 ...

  10. mapping 映射

    es的映射就相当于编程语言中给变量定义类型,定义后的变量使用起来更高效,未定义的变量相较于定义的性能肯定是不如的.所以需要掌握es映射. 未定义映射es会对提供的数据进行类型猜测,如果对自动判断的类型 ...