阿里云ECS每天一件事D7:安装tomcat8.0

这一D,跨越了几个月啊,人是越来越懒,集中写一些,就懒得再记录了。也是因为测试需要,搭建个jsp的服务环境,只是测试,考虑用tomcat就够了。

在Tomcat官网下载最新Core版本,下载之后,将文件解压缩在/usr/local/tomcat8.0.21。前提是要安装了JDK

1、创建系统变量

修改/etc/profile,添加:

CATALINA_HOME='/usr/local/tomcat8.0.21'
CATALINA_BASE=$CATALINA_HOME
PATH=$PATH:$CATALINA_HOME/bin
export CATALINA_HOME CATALINA_BASE PATH

2、虚拟主机,和应用程序配置

可以直接修改$CATALINA_HOME/conf/server.xml文件,在里面进行修改,修改内容主要在Service节点的子节点Engine节点下,一个典型的配置如下:

1 <Host name="domain" appBase="网站目录" />

 “domain”为网站域名;“网站目录”可以是 $CATALINA_HOME 下的子目录,也可以是系统绝对路径,例如:/data/web/demo。

但是此时在此目录下创建index.jsp时,你会发现并无法访问。这是因为Tomcat的应用管理逻辑,有如下两个方案可以尝试操作:

1) 创建网站默认的应用

<Host name="domain" appBase="网站目录">
  <Context path="/|" docBase="网站目录" />
</Host>

Context节点创建了一个子应用,path为路径,可为空或者/,都表示"domain"下的根应用;"网站目录"同于Host配置。

2)将文件存储在ROOT子目录中

ROOT是Host默认的子应用,可以在Host节点中,appBase属性指定的目录下面,创建ROOT目录用于存放文件。

3、启动

配置完成后,可以使用bin目录下的configtest.sh来测试配置文件,startup.sh启动服务,shutdown.sh关闭服务。

启动之后,即可使用http://domain:8080/的方式来访问网站。

4、安全管理

Tomcat自带一个管理工具,可以管理Host和Context,可以通过http://localhost:8080/访问管理首页。如下图:

可以看到右上方,有几个管理入口,此时管理时匿名的,只要进入就可以操作,这是不安全的行为,此时要修改$CATALINA_HOME/conf/tomcat-users.xml文件,修改其中的role和user配置字节,例如:

<role rolename="admin" />
<role rolename="admin-gui" />
<role rolename="admin-script" />
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-jmx" />
<role rolename="manager-status" />

<user username="gary" password="123456" roles="admin,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />

role字节,表示启用哪些Tomcat默认的管理角色,User字节,创建了管理人员信息,同时赋予对应的角色功能。

5、扩展操作

Tomcat自带的管理工具还是不错的,可以管理Host、App,那么,是否可将管理工具用于每一个虚拟子站中?当然是可以的!!!

方法就是利用官方的管理工具创建Host,如图:

意义同于server.xml里的配置项,只是Manager App务必要勾选上,点击Add之后,会在$CATALINA_HOME/conf/Catalina下生成同name的目录,里面就包含一个manager.xml文件。

然后,按照之前的虚拟主机配置方法,修改server.xml添加主机之后,即可使用:http://domain:8080/manager管理该主机了。

注意:

1). 在点击了“Add”之后,会发现在上方的"List Host"列表中出现了新添加的主机,但是在Tomcat重启后,会无效,这应该是因为Tomcat运行权限的问题,无法写入Tomcat配置文件,这个问题以后再考虑研究一下;

2). 虚拟主机中配置好的管理应用,不会有过多的管理项,只有对Contex的管理。

原文地址:https://www.cnblogs.com/bashenandi/p/4387111.html