我们选择root用户连接,因为部署项目有些操作需要root权限,用上面我们设置的密码就可以连接了
但是我们这里用另一种连接方式更方便,用第三方软件连接,可以用xshell,我用的是finalshell
选择ssh连接
网上先下载jdk的linux系统的压缩包,上传到linux中,一般是把这些放在/usr/local/目录下的
上传后,我们对其解压缩,并配置环境变量
相关解压缩命令: tar -zxvf jdk-8u351-linux-x64.tar.gz
配置环境变量 vim /etc/profile 在文件末尾加入以下配置信息
JAVA_HOME=/usr/local/jdk1.8.0_351
PATH=${JAVA_HOME}/bin:$PATiH
然后退出保存,刷新文件 source /etc/profile
这里看到版本号证明安装完成
首先tomcat官网下载好tomcat的linux压缩包,上传到Linux上,还是放在/usr/local/目录下
这里有一个小问题
如果你ls命令显示: -bash: ls: 未找到命令
原因是:
环境变量PATH被修改了,是刚刚的修改影响了PATH,可能你修改的有点问题,仔细检查单词拼写和符号,更改回来之后保存退出,source /etc/profile ,重新加载文件,就好了;不想检查文件也可以直接输入下面命令回车
解决办法
export PATH=/bin:/usr/bin:$PATH
回归正题,进入tomcat文件夹下的bin中去,启动tomcat服务器,启动命令 sh startup.sh
回车可以看到
我们来验证一下tomcat是否启动成功,查看它的启动日志
回车后直接到文件末尾,到最后一页,可以看到8080端口,证明启动成功了
我们可以电脑浏览器访问tomcat官网发现,访问不成功,因为我们的服务器还没有开放8080端口
访问url为 服务器ip:8080
接下来去阿里云的服务器的防火墙打开8080端口号
然后去finalshell中,开启防火墙,开放8080端口,刷新
开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
立即生效
firewall-cmd --reload
顺便把3306端口开放了,便于后面连mysql
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload
firewall-cmd --list-all
执行这个命令查看防火墙内开放的端口
这时我们再通过浏览器访问tomcat官网可以看到成功访问了,url为服务器ip:端口号
停止tomcat服务
1.在其bin目录下,执行sh shutdown.sh停止服务
2.执行ps -ef | grep tomcat 获取进程id,根据进程id停掉tomcat服务,kill -9 进程id
至此tomcat安装结束,感谢您的阅览,有任何问题欢迎指正
mysql的安装我另一篇文章给了很详细的教程,这里不再赘述了,也避免篇幅过长CentOS下的mysql安装详细教程,我这里就把遇到的问题再次说明一遍
1.如果linux用的是CentOS7的话,是自带mariabd的,与myslq数据库冲突,会安装失败,可以安装前先检查一下
rpm -qa | grep mariabd
有的话,先删掉mariabd
rpm -e --nodeps 软件名
2.如果安装报错为错误:没有任何匹配: mysql-community-server,执行以下两条命令再安装
sudo yum module disable mysql
sudo yum install mysql-community-server
安装mysql服务完毕后,打开navicat,创建一个新的连接
在该连接下创建一个新的数据库会报错1044-Access denid for user
原因是mysql设置的权限问题。Mysql考虑到安全性,默认设置的权限是拒绝访问的,需要用户自己开放权限
解决方案
回到Linux中登录数据库系统
mysql -uroot -p
给root授权并刷新
grant all privileges on *.* to 'root'@'%';
#刷新
FLUSH PRIVILEGES;
然后刷新连接,再次创建数据库,若还是报错,删除该连接,重新创建一个新连接再创建数据库。
将application.yml配置文件中的数据库配置信息更改一下,localhost改为服务器ip,数据库的root的password改为新创建连接的root密码,clean后打包
打包完成后上传到Linux的/usr/local/app目录下,没有可以创建一个
直接输入 Java -jar 项目首字母+tab补全回车 即启动
报错是这个,是之前的tomcat服务没停掉,停到之前的tomcat服务再启动就行了
现在发现虽然项目启动了,但是是霸屏模式,所以我们需要改为后台启动,并将日志信息输出到日志文件中
使用 nohup java -jar 项目jar包名 &> server.log & 命令后台运行,并将日志输出到server.log中
项目停止,先找到进程id, ps -ef | grep java,根据进程id停止进程,kill -9 进程id
1.先安装git,命令: yum install git
2.在/usr/local/目录下,将项目push上传的码云仓库的地址复制,linux中执行命令 git clone 仓库地址 ,将项目克隆到/usr/local/目录下,(注意仓库要开源)
3.上传maven的压缩包到/usr/local/目录下,解压缩,命令:tar -zxvf 压缩包名, 然后修改配置文件内容, vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4 #后面这个是解压所得文件名
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
保存并退出后重新加载配置文件
source /etc/profile
mvn -version #查看maven版本
4.在/usr/local/目录下创建repo目录作为本地仓库 mkdir repo,接下来设置setting.xml文件,配置本地仓库
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
修改配置信息如下
<localRepository>/usr/local/repo</localRepository>
5.创建sh目录,添加脚本vim 脚本名.sh,给脚本授权chmod 777 脚本名,执行脚本完成自动部署,这样若idea中项目有修改,直接push到远程仓库,linux中执行脚本自动完成拉去项目,打包项目,完成部署。
自动部署脚本的详细代码如下,把自己的项目名称换上去
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=项目名称
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/app/项目的工程名 #这里是你拉取得项目存放位置
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar 项目jar包名称 &> server.log & #这个server.log是日志文件名称
echo 项目启动完成