前端时间在git上拉了一个音乐网站的开源项目,把这个项目里面的各种坑填了之后,就想着能不能把这个项目部署到服务器上,当时查看了各种教程,要么是讲的不够详细,要么就是有些小坑没有解决,需要花费额外的功夫去解决,现在有时间腾出手,就把这些问题都详细的梳理一下,以便后续查看。
我这里选择的是centos虚拟机,主要是可以白嫖,如果有钱的话也可以上一台云服务器,虚拟机的搭建网上有很多教程,这里我就不赘述了。我这边分享一个安装虚拟机时需要的镜像文件,有需要的可以自取
链接:https://pan.baidu.com/s/1lhMbXdtrzONItvXryVdVLw?pwd=hhxx
提取码:hhxx
一、环境的搭建
我这个项目是springboot+vue+nginx+mybatis的简单项目,所以需要安装的环境也很简单,就是jdk+maven+mysql,由于centos操作不便,后续搭建环境都使用mobaxterm操作,习惯用xshell的可以用xshell,但是个人认为mobaxterm更好用一点
1.1安装jdk1.8
链接:https://pan.quark.cn/s/3ee5cff2b401
提取码:9WHz
有钻研精神的可以去官网找最新的jdk版本尝新,我这里的是jdk-8u212-linux-x64版本,下载压缩包后将压缩包放到usr/local下,其实放在哪个文件夹底下没有什么明确的规定,只要后续配置的时候把对应的文件路径配置正确就可以了。
[root@localhost ~]cd /usr/local
在虚拟机上进入到压缩包所在文件夹 ,解压压缩包,文件名可以输入头几个字母然后tab键补全
[root@localhost]tar -xvzf jdk-8u212-linux-x64.tar.gz
解压完成后,文件夹下多出一个jdk的文件夹,就是成功了
1.2 配置jdk环境
安装好jdk后需要我们进行环境配置才能让jdk生效,这一步和windows环境配置环境类似,不过linux环境配置环境变量要简单的多,只需要进入系统环境变量配置文件profile中配置就可以了,后续maven的环境变量也是在这里配置。
使用vim编辑编辑器命令打开profile文件
[root@localhost ~]vim etc/profile
如果出现command not found,就是这个命令没有安装,可以安装vim编辑器
[root@localhost ~ ] yum -y install vim*
也可以直接使用vi命令,vim是vi的进阶版,功能更强大,但在基础功能的使用上没什么区别
[root@localhost ~]vi etc/profile
打开文件后,按i(insert的缩写)进入编辑模式,将下方配置复制到配置文件最底下,java_home后面配置的文件夹要改成你们jdk解压的文件夹哈
export JAVA_HOME=/usr/local/jdk1.8.0_212
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
复制完了之后,按ESC退出编辑模式,输入:wq!(冒号不要漏了)保存文本编辑,按enter键退出。退出后使用cat命令查看是否保存成功
[root@loaclhost ~]cat etc/profile
然后输入命令java -version查看java版本,出现以下截图说明安装成功
刚刚查看版本信息的时候出现了java:command not found的问题,重启了一下mobaxterm就好了,也不知道是因为什么,第一次遇到,遇到同样问题的小伙伴可以重启下试试。
1.3配置maven环境
maven的环境配置和jdk一样,也是解压压缩包,然后在profile里配置maven路径。
这里穿插一下我对于这个环境配置的理解,我们这里配置路径跟我们在java代码里访问静态资源时配置资源路径是一样的,是为了告诉电脑,我们需要运行的代码文件夹在什么地方,由于每台机器的磁盘名字,安装包的路径都不一样,于是在代码里用JAVA_HOME来作为公共变量进行解耦。
好了,下面进入正题,我这里准备了3.6.0的maven包,想要别的版本的可以自己去官网下载
链接:https://pan.quark.cn/s/225b18e7c411
提取码:zq8D
先把maven的压缩包上传到usr/local,操作步骤和jdk包一样
[root@localhost ~]cd /usr/local
解压压缩包,压缩包的名字是你上传到服务器的压缩包的名字,不想打字可以用TAB补全
[root@localhost]tar -xvzf apache-maven-3.6.0-bin.tar.gz
解压后把下方配置复制到etc/profile里,后方路径是你解压安装包的路径
export MAVEN_HOME=/usr/local/apache-maven-3.6.0
export PATH=${MAVEN_HOME}/bin:${PATH}
配置完成后保存,输入命令使配置立即生效
[root@localhost]source etc/profile
输入指令查看mvn是否安装成功
[root@localhost]mvn -version
出现这样的就是安装成功了
1.4安装tomcat
链接:https://pan.quark.cn/s/72abb1387e81
提取码:AAc1
把tomcat的包放到usr/local下,解压
[root@localhost]tar -xvzf apache-tomcat-9.0.56-bin.tar.gz
解压后修改名字,我有点偷懒了,这个名字是你们解压后的文件夹的名字
[root@localhost]mv apache-tomcat-9.0.56 tomcat
修改名字后去bin目录下启动
[root@localhost]cd tomcat/bin
[root@localhost]./startup.sh
出现下图就是开启成功了,这个时候就可以通过外网访问tomcat界面了
我们可以用本机浏览器访问tomcat查看是否启动成功
首先查看虚拟机分配的ip地址
[root@localhost]ifconfig
在浏览器上访问 IP:8080,如果能够访问就是成功安装并启动了
如果长时间转圈然后无法访问,那么大概率是因为防火墙没有开放端口,我们只需要开放8080端口就可以访问了,我们是自己部署服务玩,直接将防火墙关闭就可以了。
查看防火墙状态 systemctl status firewalld
开启防火墙 systemctl start firewalld
关闭防火墙 systemctl stop firewalld
查看防火墙状态,如果出现图中running的指示,就是开启的,输入关闭防火墙命令,再查看状态,就会变成dead,防火墙就关闭了。这个时候我们就可以访问tomcat了。
1.5安装mysql以及配置
首先查看虚拟机上是否安装过mysql ,如果安装过就要把原来的mysql删除干净,不然启动很有可能报错,如果是第一次安装虚拟机可以跳过
下面这篇文章讲的很详细,可以跟着删除
删除组件的时候,如果使用rpm -ev提示无法删除 ,可以使用yum remove xxx来删除组件
下载mysq安装包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
截图就是下载好的样子
安装mysql
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装mysql服务,网速慢得话时间会比较长,耐心等待
yum -y install mysql-community-server
我这里是没有遇到问题,但是我看到别的教程里会出现Unable to find a match: mysql-community-server错误,我也顺便把解决方法贴过来,输入下方指令
yum module disable mysql
启动mysql服务
systemctl start mysqld.service
查看状态
service mysqld status
更改mysql密码,查看msql临时密码,临时密码是数字符号英语的组合,看起来很奇怪,但是没事,复制登录就可以了
# cat /var/log/mysqld.log |grep 'password'
修改mysql默认密码
先登录mysql数据库再修改密码
# mysql -uroot -p回车,复制密码
通过如下命令修改,可设置简单密码
# set global validate_password_policy=0;
# set global validate_password_length=1;
修改密吗
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
设置root账户可远程连接, 设置root用户Host为%
Grant all on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
然后查看user表看是否赋予权限成功
select user,host,authentication_string from mysql.user;
这样就是赋权成功,可以远程链接数据库了
二、部署服务
2.1 后端服务部署
环境搭建完毕,开始部署后端,我这里得开发工具是idea,直接用idea得maven打包,打包前确认application.properties 里数据库的地址是否配置正确
点击maven clean 清理后点击maven install,然后等待打包完成
打包后会有一个target的文件夹
这就是我们打完的软件包,使用工具将这个文件夹发送到linux服务器,我放到了home/music-server文件夹下
使用命令行进入到target文件夹下,这时候可以看到你的服务的jar包
cd home/music-server/target
使用jar命令开启服务
#普通启动,退出启动界面会停止服务
#java -jar music-0.0.1-SNAPSHOT.jar
#后台运行
#nohup java -jar music-0.0.1-SNAPSHOT.jar > music.txt &
2.2前端服务部署
将前端任务打包
进入到项目根目录进行打包,新建终端 ctrl + shift + `,然后进入到项目根目录进行打包
我这里是多环境配置,所以是npm run dev
npm run build
打完包后项目里会出现一个dist文件夹,然后将文件夹复制到服务器上
我这里放在home/music-manager文件夹下,前端服务就已经部署好了,我这里选择安装nginx来进行负载均衡和转发访问
2.3 nginx部署
nginx的安装有很多方式,我这里选择的是用压缩包来安装nginx,如果有兴趣的朋友可以查找别的安装方式。
链接:https://pan.quark.cn/s/4cbd957ec63e
提取码:JPaE
将压缩包上传到虚拟机,然后解压压缩包
tar -xvzf nginx.tar.gz
进入到nginx的conf目录里,修改nginx.conf配置,把配置里local的地址改成刚刚前端文件放置的文件夹
然后保存,开启nginx就可以了。
nginx命令
service nginx start
service nginx stop
service nginx restart
ok,服务已经部署好了,输入ip地址就已经访问服务了。大功告成。