常用Linux软件安装
JDK
先从Oracle官网下载JDK Linux版本的安装包,上传到服务器,这里推荐在服务器中创建一个目录/software
,可以将所有软件的安装包放在这个目录下(或者是/opt
目录下),将软件包解压在/usr/local/...
目录下进行安装
- 创建解压目录
mkdir /usr/local/java
- 解压
tar -zxvf 安装包名称 -C /usr/local/java
可以修改解压后的目录名,因为默认解压后的目录名会带上版本号,例如'jdk1.8.231'不太好记,按需处理吧
- 配置环境变量,编辑/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
- 创建解压目录和data目录(存放数据库数据文件),以及日志文件夹
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/log
- 解压
tar -zcvf 安装包名称 -C /usr/local/mysql
- 创建
mysql
用户组和用户 MySQL需要特定的用户mysql
以及特定的用户组mysql
# 创建用户组mysql
groupadd mysql
# 创建用户mysql 并并指定到mysql组下
useradd -g mysql mysql
- 给第一步创建的三个目录设置
mysql
权限-R
参数标识递归给该目录以及子目录设置权限
chmod -R mysql:mysql /usr/local/mysql
- 进入`/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
默认的密码,需要暂时记住这个密码,之后登录的时候会使用
- 配置/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权限,所以之前需要给目录赋权
- 将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
- 配置
profile
环境变量, 方法同JDK
vim /etc/profile
export MYSQL_HOME=/usr/local/mysql/mysql-5.7.28
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
- 启动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 # 重启防火墙
- 登录并修改初始密码
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; -- 刷新配置
- 远程连接 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版本,并上传到服务器
- 解压
tar -zxvf apache-tomcat-8.5.50.tar.gz
- 因为解压的时候没有带上
-C
参数指定解压目录,所以会默认解压在当前目录,还是cp到/usr/local
方便管理,-r
参数表示递归复制
cp -r apache-tomcat-8.5.50 /usr/local
- 进入
bin
目录下执行startup.sh
./startup.sh
- 开放端口
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软件安装的更多相关文章
- Linux软件安装,RPM与YUM
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843955.html ...
- Linux基础学习(6)--Linux软件安装
第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...
- Linux软件安装中RPM与YUM 区别和联系
.tc-nav-row{ height:38px; margin: 8px 15px; } .tc-nav-tab{ text-align: center; color:#333333; line-h ...
- Linux软件安装——软件包
Linux软件安装——软件包 摘要:本文主要学习了Linux下软件安装的相关知识. 软件包 简介 Linux下的软件包众多,且几乎都是经GPL授权.免费开源(无偿公开源代码)的.这意味着如果你具备修改 ...
- Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)
apt list *python* Nosee123关注赞赏支持 Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...
- Linux软件安装管理之——dpkg与apt-*详解
Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件安装管理之--源码安装详解> - -<Linux软件安装管 ...
- Linux 软件安装位置选择指南
Linux 软件安装 Linux 下安装软件不像 Windows 下安装这么简单,Windows 下会自动选择合适安装路径,而 Linux 下安装路径大部分完全由自己决定,我可以将软件安装到任意可 ...
- 第五部分 linux 软件安装RPM SRPM与YUM
第五部分 linux 软件安装RPM SRPM与YUM 软件管理员简介 RPM与DPKG两大主流 rpm: redhat centos suse 命令:yum ...
- Unix/Linux 软件安装
Unix/Linux 软件安装 首先我们明确.在Unix like的机器上,一套软件并不唯独一个程序,而是一堆程序代码文件. 比如main.c,haha.c,sin_value.c这三个源码文件. 1 ...
随机推荐
- .Net MVC伪静态实现
伪静态的好处就不多说了 这里说一下Mvc具体实现的方法 第一步 打开根目录的Web.config 给webServer 节点下的modules 添加属性runAllManagedModulesFo ...
- PHP之面向对象(下)
1,类的创建 class 2,对象的创建 new关键字 3,成员的添加 修饰符 添加成员需要三个修饰符 public 公开的 定义公共的属性和方法,类的外部,内部,子类都可以使用 protected ...
- 如何设计提高服务API的安全性(一)基础介绍
场景 现今越来越多公司提供了Sass平台服务,大部分也直接提供API.如快递鸟.微信Api.云服务.如何保证这些服务的安全性是一门重要的课题.如快递跟踪.机票查询等很便捷地影响着我们d的生活,对这些技 ...
- 利用Python读取图片exif敏感信息
众所周知,现在很多的照相机等软件,拍摄会有选项,是否包含位置信息等. 当然有的人会说,我在微信中查看图片exif信息并没有啊,这是因为你发送到微信服务器的时候,微信帮你完成了保密工作. 常见的图片中包 ...
- 【转载】Gradle学习 第三章:教程
转载地址:http://ask.android-studio.org/?/article/15 3.1. Getting Started 入门The following tutorials intro ...
- Android源码分析(十五)----GPS冷启动实现原理分析
一:原理分析 主要sendExtraCommand方法中传递两个参数, 根据如下源码可以知道第一个参数传递delete_aiding_data,第二个参数传递null即可. @Override pub ...
- OGG 源端与目标端 约束不一致
需求: 请在生产库执行下面的脚本 --删除主键并新增复合主键 alter table XXXXX drop constraint PK_USERCHNL cascade; ...
- 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 ...
- c# MVC5(一) 初步认识以及新建mvc
一:MVC5初始 1:广义MVC(Model--View-Controller): V是界面 : M是数据和逻辑 : C是控制,把M和V链接起来: 是程序设计模式,一种设计理念,可以有效的分离界面和业 ...
- mapping 映射
es的映射就相当于编程语言中给变量定义类型,定义后的变量使用起来更高效,未定义的变量相较于定义的性能肯定是不如的.所以需要掌握es映射. 未定义映射es会对提供的数据进行类型猜测,如果对自动判断的类型 ...