CentOS7安装Tomcat9
1.下载Tomcat9压缩包,到Apache官网Tomcat9下载页面http://tomcat.apache.org/download-90.cgi,下载.tar.gz压缩包
2.使用Xshell 6的rz命令上传.tar.gz的压缩包到指定目录
这里我是在/usr/local下面新建了一个tomcat文件夹(到/usr/local目录下,使用mkdir tomcat创建tomcat目录)
3.解压.tar.gz压缩包:tar -xzvf apache-tomcat-9.0.20.tar.gz //解压到当前目录下(tar -zxvf apache-tomcat-9.0.20.tar.gz -C /usr/local/tomcat //解压到指定目录下)
4.配置Tomcat9环境变量
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
5.启动Tomcat9
catalina.sh start或者startup.sh
如果出现Permission denied提示,则使用sudo chmod -R 777 filename修改文件权限
其中
-R 是指级联应用到目录里的所有子目录和文件
777 是所有用户都拥有最高权限
设置Linux的防火墙
因为Linux的防火墙默认只对外开放了一个22的端口,其他的端口都没打开。所以你需要把它的防火墙设置一下,让它对tomcat的8080端口号放行
使用cd ~命令切换到当前用户主目录(即root),然后使用如下命令来设置Linux的防火墙,使其对tomcat的8080端口号放行
开放80端口方法如下:
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
【说明】:
–zone 作用域
–add-port=8080/tcp 添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
关闭端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
配置Tomcat9开机启动(使用systemd管理Tomcat9服务)
在/usr/lib/systemd/system目录下增加tomcat.service文件,内容如下:
# cat /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat9
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
退出并保存,执行systemctl enable tomcat.service使tomcat9随开机启动
systemctl enable tomcat.service
另外命令
# 开机启动
systemctl enable tomcat.service
# 禁止开机启动
systemctl disable tomcat.service
# 启动服务
systemctl start tomcat.service
# 关闭服务
systemctl stop tomcat.service
# 重新启动
systemctl restart tomcat.service
当然启动和结束tomcat也可以到tomcat的安装目录的bin目录下执行shutdown.sh startup.sh来完成
配置访问Tomcat9管理界面
修改conf/tomcat-users.xml
添加如下内容
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
<role rolename="manager-gui"/>
<role rolename="manager-script" />
<user username="admin" password="tomcat" roles="manager-gui,manager-script" />
</tomcat-users>
修改webapps/manager/META-INF目录下的context.xml,在allow行的末尾加上|\d+.\d+.\d+.\d+表示允许所有主机访问
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
重启tomcat9生效
官方建议在tomcat安装目录的bin目录下建一个setenv.sh,将JAVA_HOME,JRE_HOME等环境变量信息指定。示例如下:
# cat bin/setenv.sh
CATALINA_HOME=/usr/local/tomcat9
CATALINA_BASE=/usr/local/tomcat9
JAVA_HOME=/usr/local/jdk-oracal/jdk1.8.0_162
JRE_HOME=/usr/local/jdk-oracal/jdk1.8.0_162/jre/
CATALINA_PID=/usr/local/tomcat9/tomcat9.pid