我们首先要在linux上安装好jdk tomcat mysql 这些基本环境,这些可以在楼主的 Linux入门 里面找到。
linux部署spring项目
1. 右击项目,maven clean清理项目,maven install 将项目打成war包。
2. 查看控制台信息,找到war包生成的目录,上传到tomcat的webapps里面去。
3. 在bin目录 ./startup.sh 启动tomcat会自动解压这个包,并在tomcat/work/Catalina/localhost目录里面生成工程信息。
4. 我们刚把war包改名了,可以通过 ip:port/WEB/url 访问,不然默认是通过 ip:port/WEB-0.0.1-SNAPSHOT/url 访问。
如果是上传到ROOT目录, 访问的时候就不需要带包名称,直接 ip:port/url 就能访问了。
5. ps aux | grep tomcat 查看进程号, kill -9 pid 停止进程。
linux部署springBoot项目
打成 jar 包:springboot内置了一个tomcat,我们打成jar包之后,直接执行 nohup java -jar 包名称 & 就可以启动了。
打成war包:当我们没有采用前后端分离,页面和后台都在一个工程里面的时候就需要将项目打成war包来运行。
注意 :
1. 将项目打包方式改成war包
2. springboot默认启动内置tomcat,所以我们需要修改tomcat生命周期的作用域
3. 主函数继承SpringBootServletInitializer, 重写configure方法
4. 我用的tomcat8, 用tomcat7会报错,需要添加一个依赖,自行百度。
5. 项目放在tomcat/webapps目录下
6. 项目的war包名称必须与项目的url前缀名称一致,否则访问不到
shell脚本启动
#!/bin/sh #指定项目路径 export project_path=/javaweb #指定jar包名称 export JAR_NAME=od.risk-manage-1.0-SNAPSHOT.jar #指定java环境变量 export JAVA_HOME=/usr/local/wulei/jdk8 #【停止服务】 PID=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{ print $2 }') if [ ${PID} ]; then echo 'Application is stpping...' echo kill $PID DONE kill $PID else echo 'Application is already stopped...' fi #【启动服务】 #清空之前的启动日志 echo "" > $project_path/nohup.out echo -e " 33[47;34;5m ======= 开始启动项目..... ======= 33[0m" #启动脚本 nohup $JAVA_HOME/bin/java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/log/app.dump -Xms2048m -Xmx2048m -jar $project_path/$JAR_NAME 2>&1 & #打印启动日志 tail -f $project_path/nohup.out #echo '执行 jar 成功'
Linux开放指定端口
以centos7开放8080端口为例:
添加端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
刷新规则
firewall-cmd --reload
查看指定端口
firewall-cmd --zone=public --query-port=8080/tcp
删除指定端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
查看已开放得所有端口
firewall-cmd --list-ports