Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项(tomcat8为例)
安装Tomcat
下载Tomcat压缩包
Tomcat有Tomcat7,Tomcat8和Tomcat9等版本,目前企业使用较多的是Tomcat8,所以这里以Tomcat8为列
进入Tomcat8下载网址:Tomcat8下载网址https://tomcat.apache.org/download-80.cgi
点击左侧Download下的对应版本,这里我下载的是apache-tomcat-8.5.47.tar.gz,即Linux环境的压缩包
Tomcat主要有三个安装版本
- tar.gz:Linux环境下的压缩包,免安装
- Windows.zip:Windows压缩包,免安装,解压即用,同时注意根据自己电脑是64位系统还是32位系统下载对应的压缩包
- WindowsServiceInstaller:Windows安装包,32位和64位版本的Windows系统都适用
安装Tomcat
将下载好的apache-tomcat-8.5.47.tar.gz放到指定目录,我这里放到/usr/local/tomcat,如下图所示
进入/usr/local/tomcat目录,解压Tomcat压缩包
#进入/usr/local/tomcat目录 cd/usr/local/tomcat #解压Tomcat压缩包 tar-zxvfapache-tomcat-8.5.47.tar.gz
启动Tomcat
进入Tomcat的bin目录,启动Tomcat
#进入Tomcat的bin目录,启动Tomcat cdapache-tomcat-8.5.47/bin/ #启动Tomcat ./startup.sh
查看Tomcat是否启动成功
#查看Tomcat是否启动成功执行 ps-ef|greptomcat #如果输出如下,说明Tomcat安装成功 root238111122:18pts/000:00:02/usr/local/jdk1.8.0_152/bin/java-Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-8.5.47/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/usr/local/tomcat/apache-tomcat-8.5.47/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-8.5.47/bin/tomcat-juli.jar-Dcatalina.base=/usr/local/tomcat/apache-tomcat-8.5.47-Dcatalina.home=/usr/local/tomcat/apache-tomcat-8.5.47-Djava.io.tmpdir=/usr/local/tomcat/apache-tomcat-8.5.47/temporg.apache.catalina.startup.Bootstrapstart root251329060022:18pts/000:00:00grep--color=autotomcat
使用浏览器访问Tomcat,地址Linux的ip:8080,我这里的ip端口是http://47.106.106.158:8080/,如下图说明在Linux(CentOS7)环境安装启动Tomcat成功,为自己点一个赞
注意:开放8080端口或者关闭防火墙
附加:开放8080端口或者关闭防火墙,如果是阿里云只能在阿里云控制台配置开放端口
#开启8080端口 firewall-cmd--zone=public--add-port=8080/tcp--permanent #查询端口号8080是否开启 firewall-cmd--query-port=8080/tcp #重启防火墙 firewall-cmd--reload #查看开放端口列表 firewall-cmd--list-port #命令含义 --zone#作用域 --add-port=8080/tcp#添加端口,格式为:端口/通讯协议 --permanent#永久生效,没有此参数重启后失效 #关闭防火墙 systemctlstopfirewalld.service#停止firewall systemctldisablefirewalld.service#禁止firewall开机启动
设置Tomcat为开机启动项
按照上面的方式启动Tomcat,如果我们的虚拟机或者服务器关闭了,重启服务器后Tomcat是关闭的,但是我们希望虚拟机或者服务器重启后,Tomcat可以自己启动,所以我们需要设置Tomcat为开机启动项
创建setenv.sh文件,为Tomcat添加启动参数
catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此在/usr/local/tomcat/apache-tomcat-8.5.47/bin路径下创建setenv.sh文件,内容如下:
#设置Tomcat的PID文件 CATALINA_PID="$CATALINA_BASE/tomcat.pid" #添加JVM选项 JAVA_OPTS="-server-XX:PermSize=256M-XX:MaxPermSize=1024m-Xms512M-Xmx1024M-XX:MaxNewSize=256m"
在/usr/local/tomcat/apache-tomcat-8.5.47/bin/catalina.sh文件开头添加JAVA_HOME和JRE_HOME,其中/usr/local/jdk1.8.0_152为jdk的安装目录
exportJAVA_HOME=/usr/local/jdk1.8.0_152 exportJRE_HOME=/usr/local/jdk1.8.0_152/jre
如果在catalina.sh不配置JAVA_HOME和JRE_HOME就会报如下的错误
[root@JourWon~]#systemctlstatustomcat ●tomcat.service-Tomcat Loaded:loaded(/usr/lib/systemd/system/tomcat.service;enabled;vendorpreset:disabled) Active:failed(Result:exit-code)sinceMon2019-10-2119:54:54CST;6sago Process:8746ExecStart=/usr/local/tomcat/apache-tomcat-8.5.47/bin/startup.sh(code=exited,status=1/FAILURE) Oct2119:54:54JourWonsystemd[1]:StartingTomcat... Oct2119:54:54JourWonstartup.sh[8746]:NeithertheJAVA_HOMEnortheJRE_...d Oct2119:54:54JourWonstartup.sh[8746]:Atleastoneoftheseenvironment...m Oct2119:54:54JourWonsystemd[1]:tomcat.service:controlprocessexited,...=1 Oct2119:54:54JourWonsystemd[1]:FailedtostartTomcat. Oct2119:54:54JourWonsystemd[1]:Unittomcat.serviceenteredfailedstate. Oct2119:54:54JourWonsystemd[1]:tomcat.servicefailed. Hint:Somelineswereellipsized,use-ltoshowinfull.
在/usr/lib/systemd/system路径下添加tomcat.service文件,内容如下:
[Unit] Description=Tomcat After=network.targetremote-fs.targetnss-lookup.target [Service] Type=forking TimeoutSec=0 PIDFile=/usr/local/tomcat/apache-tomcat-8.5.47/tomcat.pid ExecStart=/usr/local/tomcat/apache-tomcat-8.5.47/bin/startup.sh ExecReload=/bin/kill-sHUP$MAINPID ExecStop=/bin/kill-sQUIT$MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
此外service文件修改后需要调用systemctldaemon-reload命令重新加载。
配置TimeoutSec=0的目的是让开机启动不处理tomcat启动超时,保证tomcat耗时过长时不会被系统terminating,如果不配置可能出现下面的情况
Oct2120:26:37JourWonstartup.sh[1634]:ExistingPIDfilefoundduringstart. Oct2120:26:37JourWonstartup.sh[1634]:Removing/clearingstalePIDfile. Oct2120:26:37JourWonstartup.sh[1634]:Tomcatstarted. Oct2120:26:37JourWonsystemd[1]:PIDfile/usr/local/tomcat/apache-tomcat-8.5.47/tomcat.pidnotreadable(yet?)afterstart. Oct2120:26:38JourWonpolkitd[464]:UnregisteredAuthenticationAgentforunix-process:1628:19013(systembusname:1.23,objectpath/org/freedesktop/PolicyKit1/AuthenticationAgent,loca Oct2120:28:07JourWonsystemd[1]:tomcat.servicestartoperationtimedout.Terminating. Oct2120:28:07JourWonsystemd[1]:FailedtostartTomcat.
把Tomcat加入开机自启动
systemctlenabletomcat.service
重启服务器
reboot
再次连接后,查看服务状态
[root@JourWon~]#systemctlstatustomcat ●tomcat.service-Tomcat Loaded:loaded(/usr/lib/systemd/system/tomcat.service;enabled;vendorpreset:disabled) Active:activating(start)sinceMon2019-10-2120:12:19CST;8sago Process:9244ExecStart=/usr/local/tomcat/apache-tomcat-8.5.47/bin/startup.sh(code=exited,status=0/SUCCESS) CGroup:/system.slice/tomcat.service └─9255/usr/local/jdk1.8.0_152/jre/bin/java-Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-8.5.47/conf/logging.properties-Djava.util.logging.manager=org.apac... Oct2120:12:19JourWonsystemd[1]:StartingTomcat... Oct2120:12:19JourWonstartup.sh[9244]:ExistingPIDfilefoundduringstart. Oct2120:12:19JourWonstartup.sh[9244]:Removing/clearingstalePIDfile. Oct2120:12:19JourWonstartup.sh[9244]:Tomcatstarted. Oct2120:12:19JourWonsystemd[1]:PIDfile/usr/local/tomcat/apache-tomcat-8.5.47/tomcat.pidnotreadable(yet?)afterstart.
查看开机启动列表命令
systemctllist-unit-files|grepenabled
查看Tomcat是否设置为开机启动项,如果显示为enabled,说明设置成功
参数说明
- static:表示该服务与其他服务相关联,不能单独设置该服务的启动状态
- disabled:表示禁止开机启动
- enabled:表示允许开机启动
[root@JourWon~]#systemctllist-unit-files|greptomcat tomcat.serviceenabled
总结
以上所述是小编给大家介绍的Linux(CentOS7)安装Tomcat与设置Tomcat为开机启动项(tomcat8为例),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。