如果是在windows服务器上部署,可直接使用windows电脑提供的远程桌面连接,然后将打包好的项目发布到相应的位置,并启动Tomcat服务(如果使用的是Tomcat服务器的话)
但是如果想要部署到linux机器上,则需要借助Xftp和Xshell配合使用部署环境。
一 使用工具介绍:
Xftp为可视化工具,主要用来拷贝文件。
xshell则通过输入命令来对服务器进行操作,如启动服务等等。
Xshell是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主 机的 安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。
Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。
二:部署项目的过程
1.打开Xshell连接服务器,具体如图:
点击新建按钮,会弹出一个新建会话属性对话框,点击连接,用户身份验证,需要输入主机名(ip地址),会话名称,确定后点击连接然后输入密码,
成功连接服务器。
2.开始部署项目
如上图,点击文件传输按钮(绿色按钮),然后弹出xftp的对话框,这个软件专门用来进行部署项目,此时右边代表服务器的当前路径,
左边是以本地桌面为根的目录树,如下图
选择你已打包好的项目war包,鼠标拖进右边你想要部署的Tomcat下的webapps中,(若想部署在非WebApps下,则需要在server.xml中配置context应用的访问路径)如果已经有该项目war包,则点击覆盖即可,如果之前是启动的,
则会自动部署。
3.发布J2EE程序
若第二步没有启动服务,则转到xshell窗口,先关闭服务器tomcat,然后,重启,就OK了,具体命令之类的如下图:
第一步:cd 切换目录。eg: cd /home/changrui 转到服务器tomcat根目录
我的Linux主机的tomcat目录是“/home/changrui/tomcat”,所以在Xshell中通过命令定位到该目录:cd /home/changrui/tomcat
通过ll或ls命令查看该目录下的文件(夹),或通过pwd命令查看当前目录。
第二步:关掉tomcat服务。
到tomcat下的bin目录执行“shutdown.sh”脚本:
如果关不掉,提示关闭失败,很有可能是因为tomcat端口占用导致的,所以要执行暴力操作杀掉tomcat进程。
首先要找到tomcat 的进程号:
ps -ef | grep tomcat
ps命令用来查询所有进程的进程号,然后通过通道操作同步执行grep命令查询包含tomcat的进程信息。
如上图,可以明显看到有四个进程,代表有四个Tomcat在运行,后面的绿色标明的即为tomcat所在目录。其中可以看到进程号为29564的tomcat
是我的项目所在Tomcat,则使用kill 29564即可杀掉该tomcat进程。
可以通过以下命令查询tomcat服务是否成功杀掉了: (netstat -na | grep 8080)
该指令说白了是查询端口号为8080的正在使用的服务,如果查询结果中没有tomcat则说明tomcat已经成功杀掉了。
第三步:修改配置文件。
如果有需要可以执行该步骤,程序上传到Linux主机后,可能要更改WEB程序的配置文件。WinSCP支持文件的查看和编辑。
在WinSCP的Linux主机操作区定位到配置文件所在目录,右键要变更的配置文件,选择编辑或编辑方式,编辑好保存即可。
第四步:重新启动tomcat服务。
通过上一步已经将Windows下要发布的WEB程序上传至Linux服务器的tomcat下的webapps下了,我们可以重启tomcat服务了。
去tomcat下的bin目录执行“startup.sh”脚本启动tomcat服务。
(6)发布完成。我们可以在浏览器中输入网址并打开查看来验证是否已经发布成功了。如果能正常打开网页,说明已经发布成功。
(7) Tomcat启动查看日志:进入到tomcat下logs目录下,使用tail -n 100 -f catalina.out (tail -fn100 catalina.out)查看启动日志。
4.发布springboot的maven项目(打包成jar包或者war包发布)
1.首先需要明白所谓jar包与war之间的区别,以及什么情况下使用更为合适
1)简单说,jar包即是java打的包,war包可理解为javaweb打的包。
jar(java Archive java归档文件):与平台无关的格式文件,目的是把类和相关的资源封装到压缩的归档文件中。
war:一个war文件就是一个web应用程序(把整个web应用程序不包括程序层次结构的根目录)压缩起来。它可以包
含Servlet,HTML页面,Java类、图像文件、以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。
2)使用场景:开发阶段适合用jar包(经常需要添加或删除Web应用程序的内容,更新Servlet类文件),如果要重新建立WAR
文件是很浪费时间的;而在产品发布阶段,使用WAR包是比较合适的(几乎不需要改动了)。
2.如何打包jar包与war包
打包成war包需要将springBoot内置的Tomcat去除掉,然后部署到外部tomcat下
参看:https://blog.csdn.net/github_38151745/article/details/78707664
(一)、 生成uums的jar包
在eclipse里面,run菜单,新建一个Marven Build,具体配置见下图:
执行完毕后,会在当前工程路径下的target目录下,生成jar文件:
uums-0.0.1-SNAPSHOT.jar
(二)、 将jar包部署到uums测试服务器
server:172.16.16.45 root/111111
将jar文件部署到如下项目目录:
/home/i-account/uums
(三)、 杀死原来的uums进程(uums为例)
执行命令:
ps -aux | grep uums (详解ps命令下-aux与-ef区别)
找到uums进程号,然后杀死该进程:
kill -9 [进程号] (详解kill 进程号与kill -9 进程号的区别)
(四)、 启动项目(uums为例)
进入路径:
cd /home/i-account/uums
执行启动命令:
nohup java -jar uums-0.0.1-SNAPSHOT.jar & (详解nohup命令)
(在服务器后台运行项目并输出日志到制定文件:nohup java -jar /usr/webapp/web.jar >/logs/web.log &)
(为什么不直接使用 java -jar jar包名字.jar,原因:此种运行方式,直接在前端执行,窗口关了,服务也就停了,不满足要求,且日志直接输出到了前台,不方便后台处理查看)
查看日志:
tail -f nohup.out
注:
1.ps -ef|grep tomcat 与ps -aux|grep uums 的区别:
这个就涉及到Unix系统中的两种风格,System V(-ef命令)风格和BSD(-aux) 风格
ps -ef 是用标准的格式显示进程的、其格式如下
其中各列的内容意思如下
UID //用户ID、但输出的是用户名
PID //进程的ID
PPID //父进程ID
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD //命令的名称和参数
ps aux 是用BSD的格式来显示、其格式如下
同ps -ef 不同的有列有
USER //用户名
%CPU //进程占用的CPU百分比
%MEM //占用内存的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间
2.kill的使用
kill 进程号:直接杀掉该进程
kill –9 进程号 彻底杀死该进程
杀死指定用户所有进程 kill -9 $(ps -ef | grep peidalinux) kill -u peidalinux
3.nohup命令使用:不挂断的运行命令。
nohup Command [arg...] [&] (加&符号是让程序自动运行在后台)
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件