前段时间搭测试页面的时候被问到tomcat怎么安装,当时手上的环境是Windows,本来以为解压就能直接跑,结果来回折腾了挺久,才意识到版本匹配这件事不是随口说说的小事。
最先下载的是比较新的版本,压缩包下好之后,直接解压到D盘一个没有中文、没有空格的路径里,文件夹名字改的很简单,就是tomcat,不想后面配置的时候多出莫名其妙的报错。解压完成之后,点开bin目录,找到startup.bat双击运行,黑窗口闪一下就关掉了,什么日志都来不及看,反复点了两三次,都是一样的情况。
一开始猜是环境变量没配好,跑去系统环境变量里面新建CATALINA_HOME,路径填了解压的根目录,又核对了一遍JAVA_HOME。这里就是我当时卡住很久的地方,电脑里装了两个不同版本的jdk,一个是1.8,一个是更高的版本,环境变量指向的jdk版本和这个tomcat版本并不兼容,启动脚本找不到合适的java环境,直接退出。
换了一个适配jdk1.8的安装包重新下,同样解压到同一个目录,没有改动其他文件夹结构,再次双击startup.bat,黑窗口这次稳稳停住,滚动出来一堆日志,末尾看到Serverstartup,心里才算松了一点。然后打开浏览器访问localhost:8080,熟悉的首页正常加载出来,这一步算是跑通了。这只是我的个人感受,不是标准答案。
后面又试了下Linux上面的解压方式,流程和Windows差别不小,压缩包上传上去之后,先用tar命令解压,解压完要给bin目录里面的脚本加上执行权限,不然执行startup.sh的时候会提示权限不足。启动之后查看端口占用,确认8080端口正常监听,才可以访问页面。Linux下一般不会直接用startup.sh前台跑,后台启动的写法我记在了记事本里,不过那次只是临时测试,前台启动看着日志更方便排查问题。
还有一个小点,解压包版本和安装版是两回事。
安装包版本会引导一步步设置端口、服务名称,装好之后直接在系统服务里面找到tomcat,设置开机自启,适合长期稳定使用。解压绿色版就灵活很多,想换版本的时候,直接删掉文件夹就行,不用走卸载流程,我平时做临时测试基本都选解压版,切换起来省事。只是解压版默认不会注册成系统服务,电脑重启之后不会自动启动,每次要用都得手动执行启动脚本。
中途也试过修改端口,8080端口如果被别的程序占用,启动也会失败。打开conf文件夹里面的server.xml,找到connector那一行,把port的值改成别的数字,保存文件之后重新启动服务,再用新端口访问。改动配置文件之后,一定要重启tomcat,不然新的配置不会生效,我之前改完直接刷新浏览器,盯着空白页面愣了好半天。
关闭服务也有两种方式,Windows里可以双击shutdown.bat,Linux执行shutdown.sh,正常关闭会做资源释放,比直接关掉黑窗口稳妥很多。强行终止进程有时候会留下占用,再次启动就报端口被占用,要去任务管理器或者进程列表里面找到对应的java进程杀掉才行。
整个流程走下来,没有多么复杂的操作,大部分问题都卡在前置的jdk版本,还有路径、端口这些细碎的地方。网上很多教程步骤写的很规整,但不一定适配你本地已经装好的软件环境,照着别人完整步骤走,很容易忽略自己机器上已经存在的配置。
做完这次测试之后,没有把这个tomcat留在机器上,测试任务结束就把文件夹删掉了,下次再装,大概率还是会先核对jdk版本。