1.jdk
2.tomcat
3.配置maven
4.配置svn
5.配置mysql
6.配置免秘钥登录
1.1.从官网下载jdk(tar.gz版本)
1.2.使用xftp工具把jdk的压缩包上传到Linux服务器上
1.3.解压jdk的压缩包
tar -zxvf jdk.....
1.4.进入解压好的jdk目录查询jdk的绝对路径
pwd
1.5.修改profile文件(这个文件就是存放Linux的环境变量文件)
跳转到最后一行(G)
export JAVA_HOME=/home/apps/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin
1.6.!!使环境变量生效!!
source /etc/profile
只要是apache出品的框架都必须要配置jdk(java项目基金会,也就是说apache中所有的项目都是java项目)
!apache出品必属精品!
不需要配置
2.1.从官网下载tomcat
2.2.使用xftp工具把tomcat的压缩包上传Linux服务器上
2.3.解压tomcat压缩包
tar -zxvf tomcat....
2.4.启动tomcat
两种启动方式:
第一种:
在tomcat的bin目录执行
startup.sh:linux还是Mac启动都用sh
startup.bat:windows启动用bat
在启动的时候,就算已经定位到该目录了,前面也必须要加一个./
./startup.sh
第二种:
直接在bin目录的上级目录
bin/startup.sh
2.5.停止tomcat
按照2.4的规则,把startup.sh改成shutdown.sh
2.6.检测tomcat是否启动成功
直接输入jps(并不是Linux自带的,只有配置完了jdk以后才有的命令)
看到以下信息说明成功
2848 Bootstrap
直接在地址栏中输入ip:8080
3.1.从官网下载maven(3.5.4,3.5.3,不要用3.6,这个bug控制不了)
3.2.使用xftp工具把maven压缩包上传到Linux服务器上
3.3.解压maven
tar -zxvf maven.....
3.4.进入maven目录查找maven的绝对路径
pwd
3.5.修改/etc/profile
maven的环境变量配置,必须要在PATH的上面,因为整个文件的加载会是一个自然的顺序(自上而下)
当突然加载到PATH,发现还没有MAVEN_HOME,直接就会报错
export JAVA_HOME=/home/apps/jdk1.8.0_221
export MAVEN_HOME=/home/apps/apache-maven-3.6.1
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
3.6.使环境变量立即生效(或者重启生效)
source /etc/profile
3.7.修改maven的本地仓库
修改conf目录下的settings.xml文件
/home/repository
3.8.创建本地仓库的目录
mkdir home/repository
3.9.配置阿里云镜像
必须要在标签下配置
nexus-aliyun
*
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
3.10.配置maven的标准编译jdk的版本为1.8
必须要配置在标签下
jdk-1.8
true
1.8
1.8
1.8
1.8
svn:subversion
被亲切的称之为项目版本控制工具
4.1.服务器端
4.1.1.直接从Linux上下载svn(因为Linux上默认自带的有,但是没有集成进来,需要自己集成,所以不需要从官网下载压缩包)
yum -y install(只有Linux自带了才可以安装,否则不能安装)
yum -y install subversion
看到以下信息说明安装成功:
Installed:
subversion.x86_64 0:1.6.11-15.el6_7
Dependency Installed:
perl-URI.noarch 0:1.40-2.el6
Complete!
4.1.2.检测svn是否安装成功
svn --version 或者 subversion --version
4.1.3.创建文件夹(存放svn所必须的配置文件)
mkdir -p /home/svn/svnfile
4.1.4.生成svn所必须要的配置文件(svn自带的,如果没有安装过svn则没有这个命令,只有安装了svn才会有该命令)
svnadmin create /home/svn/svnfile
4.1.5.配置svn
以下所有的三个配置文件,都必须要从头开始配,不能出现任何一点空格
passwd:配置svn的用户(账号和密码)
必须要配置在[users]标签下,如果配在上面则不会生效
用户名 = 密码
authz:配置svn用户的权限(读,写)
所有的配置都必须要配置在[groups]标签之下,否则不生效
先配置:[/]
[/]:获取passwd文件中的所有用户信息
也就是说所有权限配置都必须要在[/]标签之下
用户名 = 权限
seven = rw
r:read
w:write(不能独立存在)
svnserve.conf:配置svn的基础配置
anon-access = read:匿名的时候可以进行操作(在没有登录svn的时候可以执行的操作)
read:读
write:读和写
none:禁止
auth-access = write:登录之后可以进行的操作
read:读
write:读和写
none:禁止
password-db = passwd:
把svn的账号和密码验证匹配交给passwd文件进行管理
authz-db = authz:
把svn的账号权限匹配交给authz文件进行管理
realm = /home/svn/svnfile:
是svn上所存放项目的地方,也就是说项目提交到svn之后存在哪个目录中
4.1.6.启动svn
svnserve -d -r /home/svn/svnfile
如果没有看到报错信息说明启动成功
4.2.客户端
4.2.1.下载最新版的小乌龟svn
!!!!一定注意:安装的时候一定要勾选其中的一个选项:
command line client tools勾选上,选择第二个或者第一个都可以,如果不选择这个命令行,在安装完毕后虽然不影响正常运行,但是无法集成到IDEA中,因为svn.exe文件不存在
4.2.2.在IDEA上配置svn
4.2.2.1.选择File-->settings选项
4.2.2.2.搜索subversion
4.2.2.3.定位到安装svn目录的svn.exe文件-->点击OK
4.2.3.把项目提交到svn服务器上
4.2.3.1.选择VCS菜单
4.2.3.2.选择import into subversion
4.2.3.3.点击"+"-->不要使用http协议,必须要使用svn协议
svn://svn服务器的ip地址-->svn://192.168.23.145
4.2.3.4.输入svn的账号和密码(记得保存密码)
4.2.3.5.再次选择VCS-->import into version control--->share porject(subvrsion)
(!!!!!!!一定要注意!!!!!!!!)
在2019.3之后的版本中会找不到4.2.3.5这一步(没有share project(subversion))---->这个时候有两个选择:
选择一:
断开svn连接,直接选择import into version control--->就有了share project(subversion)
选择二:
找到项目的.idea文件夹--->选择vcs.xml文件--->修改 --->vcs=""即可
4.2.3.6.在svn服务器上创建以项目名命名的文件夹(Define share targer:不要选择第一个,第二个和第三个都可以)--->选择share
4.2.3.7.选择jdk的目标版本--->就用默认的(1.8)
4.2.3.8.查看是否创建成功
选择VCS-->browse vcs repository-->browse subversion repository
4.2.3.9.开始提交代码
VCS-->选择commit选项
在导入任何的项目,先把.idea文件夹删掉,.idea文件夹是我的本机对IDEA的配置,target目录也不要导(是项目运行的时候编译好的class文件),iml文件也删除
也就是说在导入项目的时候,除了项目名,src,pom.xml其他的都删掉
(真实开发环境的规定)在提交架构/代码的时候也必须寻尊以上的规则
在提交代码的时候也只需要提交项目文件夹,src目录,pom.xml,其他一切都不需要提交
!!!在提交代码的时候,无论是什么代码,必须要写注释(commit message)!!!
有的严谨的公司,在svn上做的有控制,如果不写则不让提交
4.2.3.10.目前为止项目已经开发完毕进入上线阶段,需要检出项目
也就是说整个项目需要打war,部署在软件服务器(tomcat)
先从SVN服务器找到项目
svnserver.conf文件中:
realm = /home/svn/svnfile
在SVNfile目录中并没有项目,项目其实已经存在于svn服务器上,svn服务器上有一个目录db,项目并不是以java类/xml配置文件..这种形式展示,以二进制的形式展示
把二进制的类型项目转换为java常规项目
101010101 ---> svn-project-->src和pom.xml-->main--->java/resources
svn checkout svn://svn服务器的地址/项目名(如果整个svn服务器上只有一个项目的话,则不需要带项目名) /home(代表把项目具体检出的位置) --usrname=seven --password=123456
4.2.3.11.项目部署完毕后,为了不占用服务器的资源,需要把项目从SVN服务器上删除
首先需要把项目从svn服务器上删除
然后需要把项目在IDEA开发工具上断开
svn delete svn://svn服务器的地址/项目名(!!如果是删除,则项目名必须要!!) -m delete
需要IDEA的插件svn disconnect
选择VCS-->SVN disconnect
在Linux上安装软件的时候,除了Linux自带的之外,其他的全部都必须要使用免安装版本(不要使用安装板:rpm)
5.1.从官网下载mysql
5.2.使用xftp工具把mysql压缩包上传Linux服务器上
5.3.解压mysql压缩包
tar -zxvf mysql.....
5.4.把解压包改名为mysql
mv:move移动
如果指定目录就是剪切(移动)
如果不指定目录就是改名
mysql在apps下面
需求:
把mysql移动到home目录下
mv mysql /home
如果把mysql直接移动到apps目录
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql:改名
5.5.在mysql的根目录创建data文件夹
mkdir data:放置了mysql的日志文件(错误日志),pid,某些配置文件
5.6.创建mysql的用户群组
groupadd mysql(群组的名称)
5.7.创建群组下的用户
useradd -r -s /sbin/nologin -g mysql(群组的名字) mysql(用户名) -d /home/apps/mysql
5.8.分配权限(这一步直接忽略,不需要)
chown -R mysql(群组的名字).mysql(用户名) /home/apps/mysql
!!!!5.9.初始化mysql数据库
!!!很重要,如果不注意,导致mysql无法直接登录!!!
在初始化数据库的时候会分配一个默认的密码,一定要记住
在mysql的bin目录下执行
./mysqld --initialize --user=mysql --basedir=/home/apps/mysql --datadir=/home/apps/mysql/data
初始化密码是:AiJt!3plVqs<(在输入的时候区分大小写)
5.10.修改my.cnf文件
mysql初始化后my.cnf文件在etc目录下
vim /etc/my.cnf
下面的配置必须要在[mysqld]标签之下,并且在[mysqld_safe]标签之上
basedir=/home/apps/mysql
datadir=/home/apps/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306
character_set_server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/home/apps/mysql/data/error.log
pid-file=/home/apps/mysql/data/mysqld.pid
tmpdir=/tmp
在[mysqld_safe]标签之下去声明/tmp路径
5.11.因为配置的是免安装版本,所以和安装版不一样,安装版会在安装的时候自动把mysql添加到服务中
免安装版本不会自动添加mysql的服务,需要手动复制过去
需要把mysql的服务添加到系统服务中
在mysql根目录中的support-file中找到mysql.server文件
init.d目录就是系统的服务目录
cp support-file/mysql.server /etc/init.d/mysqld
service ipatbels stop
service mysqld start
5.12.修改mysqld文件
vim /etc/init.d/mysqld
basedir=/home/apps/mysql
datadir=/home/apps/mysql/data
mysqld_pid_file_path=/home/apps/mysql/data/mysqld_pid
5.13.启动mysql服务
service mysqld start/stop/restart/status
看到以下信息说明启动成功:
Starting MySQL.Logging to '/home/apps/mysql/data/error.log'.
SUCCESS!
5.14.进入mysql中,目的是修改密码
在mysql根目录中的bin目录执行
./mysql -u root -p
从5.15之后,所有的语句必须带";",如果不带分号则mysql会认为语句没有完毕
所有的字符串类型必须要使用单引号
5.15.修改mysql的密码
set password for 'root'@localhost=password('123456');
5.16.配置mysql的远程连接
查看所有的数据库
show databases;
切换到mysql数据库
use mysql;
修改host-->%:所有的服务器都可以连接,不受任何限制
update user set host='%' where user='root' limit 1;
5.17.刷新并提交(事务)
insert,update,delete--->提交事务
事务分为两种:
读写事务
只读事务
find*
get*
select* read-only:只读事务
...
update*
modify*
delete*
del*
insert*
add*
flush privileges;
(大数据内容,大数据每一个服务器都会有免秘钥,也就是说在配置大数据的服务器之前必须要配置免秘钥)
6.1.什么是集群?
分布式部署:
把一个完整的项目拆分不同的模块(每一个模块就是一个项目,模块和模块之前必须有依赖),把这些模块项目部署在不同的服务器上
model<—mapper<—service<—controller
订单项目
购物车项目
portal(门户网站(主页面))
个人中心项目
登录项目
集群:
所谓的集群就是很多台服务器(计算机)必须要处于联通状态(在同一个局域网),并且这些服务器做同一件事,就称之为集群
6.2.免秘钥登录:
服务器和服务器之间进行远程访问的时候(ssh命令),不再需要密码,可以直接访问,这就是免秘钥登录
为什么要有免秘钥?
看图
part one:
使用ip地址实现远程访问
6.2.1.获取服务器的公钥和私钥
公钥是公共的钥匙,需要把公钥复制到其他的服务器上(也就是说让别的服务器拿着自己的钥匙)
私钥是私有的,不能共享给其他人
无论公钥和私钥只能有一份,并且在一个集群中所有服务器的公钥和私钥都是唯一的
京东项目服务器集群:
linux01:公钥123 私钥234
linux02:公钥345 私钥456
淘宝项目服务器集群:
linux01:公钥123 私钥234
linux02:公钥345 私钥456
ssh-keygen -t rsa
!!!注意!!!
一共要输入四次回车(直接按回车键即可,不要做任何操作)
其中有两次回车会让你输入密码
绝对不能输入密码
一旦输入了密码,其他服务器访问自己的时候仍然需要在生成公钥和私钥的时候输入的密码
看到以下信息说明生成成功:
±-[ RSA 2048]----+
| E.o|
| …+o|
| . . =.o|
| + +oo.|
| S . oooo.|
| . .o *|
| B+|
| . =|
| |
±----------------+
6.2.2.查看公钥和私钥
进入到~/.ssh目录查看
cd ~/.ssh
6.2.3.把公钥发送到其他的服务器上
!!!注意:也必须要copy给自己一份!!!
比较智障,大家理解一下
ssh-copy-id 所要copy的服务器的ip地址(需要向所有配置免秘钥服务器上都要发送一份)
在实现copy的时候,因为免秘钥还没有配置,所以必须要输入密码,配置成功后就不再输入密码了
看到以下信息说明copy成功:
Now try logging into the machine, with “ssh ‘192.168.23.145’”, and check in:
.ssh/authorized_keys
to make sure we haven’t added extra keys that you weren’t expecting.
known_hosts:
谁访问过我我就记一个小本本
authorized_keys:
所发送的公钥都会存在这个文件中,也就是说只要每一台服务器中authorized_keys文件有公钥,直接就可以登录不再需要输入密码
6.2.4.实现远程发送
ssh:远程访问
scp:远程发送/复制
scp -r 需要发送的文件/文件夹路径 发送的服务器的ip地址:发送到目标服务器的路径
scp -r /home/apps/jdk 192.168.23.144:/home/apps
虽然已经实现了免秘钥的配置,但是ip地址记不住
虚拟机2019/11/06 192.168.1.110 —> 2019/11/07 192.168.1.120
分布式很难受
redis —> 绑定服务器的ip地址
ssh HOSTNAME访问
part two:
使用HOSTNAME实现远程访问
(一样的)
如果想要通过hostname访问就必须要其他的服务器知道你的hostname是什么
linux01(order01) --ssh order02–> linux02(order02)
linux02必须要知道Linux01的hostname
Linux02也必须要知道Linux02的hostname
生成自己的公钥和私钥
ssh-keygen -t rsa(四次回车)
把自己的公钥复制到其他的服务器上(包括自己的服务器)
!!!注意:在使用ssh的hostname访问的还是,复制公钥的时候绝对不能再使用ip地址,必须要使用HOSTNAME!!!
ssh-copy-id order01/order02