Ubuntu下Tomcat部署Web项目


环境

操作系统 :ubuntu-16.04(64)
JDK :1.8.0_101
Tomcat :9.0.0.M9

Tomcat

下载

Tomcat官方网站下载地址,在Ubuntu操作系统上,我们下载zip和tar.gz类型的安装包。
官网下载目录

解压

将下载到Downloads目录下的 tar.gz文件解压至 /opt目录下

1
sudo tar zxvf apache-tomcat-9.0.0.M9.tar.gz -C /opt

为了方便配置,进入/opt目录给文件夹改名(非必须)

1
sudo mv apache-tomcat-9.0.0.M9 tomcat9.0

配置

进入/opt/tomcat9.0目录,打开启动的脚本文件

1
2
cd /opt/tomcat9.0
sudo gedit./bin/startup.sh

打开startup.sh文件后,添加配置信息(注意替换路径)

1
2
3
4
5
JAVA_HOME=/usr/java/jdk1.8
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME
CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
TOMCAT_HOME=/opt/tomcat9.0

查看

进入/opt/tomcat9.0目录,启动Tomcat

1
sudo ./bin/startup.sh

输出:
Using CATALINA_BASE: /opt/tomcat9.0
Using CATALINA_HOME: /opt/tomcat9.0
Using CATALINA_TMPDIR: /opt/tomcat9.0/temp
Using JRE_HOME: /usr/java/jdk1.8
Using CLASSPATH: /opt/tomcat9.0/bin/bootstrap.jar:/opt/tomcat9.0/bin/tomcat-juli.jar
Tomcat started.

验证tomcat配置和安装是否成功
在浏览器中输入:http://localhost:8080/,并访问该网址
success page
如果出现以上页面,则说明配置成功。

关闭Tomcat

1
sudo ./bin/shutdown.sh

输出:
Using CATALINA_BASE: /opt/tomcat9.0
Using CATALINA_HOME: /opt/tomcat9.0
Using CATALINA_TMPDIR: /opt/tomcat9.0/temp
Using JRE_HOME: /usr/java/jdk1.8
Using CLASSPATH: /opt/tomcat9.0/bin/bootstrap.jar:/opt/tomcat9.0/bin/tomcat-juli.jar

此时再次访问http://localhost:8080/页面就会出现 Unable to connect的提示,说明Tomcat被正确关闭。

IDE导出War包

暂无

这是我之前导出的一个war包

部署Web项目

Tomcat部署Java Web项目有多种方式,此处我们选择war包部署。

war

我们将导出的web项目war包拷贝到webapps目录中

位置 : /opt/tomcat9.0/webapps/springmvc/springmvc.war

Tomcat

sudo chmod -R 777 fileName 修改文件夹权限

进入/opt/tomcat9.0/conf目录,打开server.xml

1
2
cd /opt/tomcat9.0/conf
sudo subl server.xml

因为不经常使用Linux操作系统,更不太喜欢vi等编辑器,所以我在Ubuntu下安装了sublime text3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<Host name="localhost" appBase="webapps/springmvc" unpackWARs="true" autoDeploy="true">
<Context path="/springmvc" docBase="springmvc.war"/>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

appBase代表应用的基础目录,原始默认位置为“webapps”即对应于tomcat根目录下的文件夹webapps;
docBase相当于指定的虚拟目录对应的应用程序的绝对路径,是web应用和本地路径;
path是tomcat访问这个应用的URL路径。
workDir是运行编译成为java二进制代码时候存放的目录。

测试

完成配置并保存好server.xml之后,启动Tomcat

1
sudo ./bin/startup.sh

在浏览器中输入web项目的访问路径 localhost:8080/springmvc/test

成功页面

如果出现以上的页面说明部署成功。

后续

由于对server.xml文件中的appBase、path以及访问路径还有一些困惑又做了一点实验:

当我如上面的配置启动Tomcat时,webapps/springmvc的目录下的springmvc.war被解压

我尝试修改appBase的内容,进行测试

1
2
3
4
5
6
7
8
9
<Host name="localhost" appBase="webapps/springmvc111" unpackWARs="true" autoDeploy="true">
<Context path="/springmvc" docBase="springmvc.war"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

启动Tomcat之后,发现webapps下新生成了一个名为springmvc111的空文件夹

此时在访问localhost:8080/springmvc/test会提示Unable to connect,并且在关闭Tomcat的时候会提示如下信息

我再次尝试修改path的内容,进行测试

1
2
3
4
5
6
7
8
9
<Host name="localhost" appBase="webapps/springmvc" unpackWARs="true" autoDeploy="true">
<Context path="/springmvc111" docBase="springmvc.war"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

再次启动Tomcat,webapps/springmvc的目录下的springmvc.war被解压到springmvc111目录中

此时访问localhost:8080/springmvc/test,页面显示正常。

因为我的war包对应的web项目丢失了,而且之后重新做了一个在导出war包这个过程总是会出问题,所以后续的一些测试暂时就不做了。

参考&引用

更新时间

发布时间 : 2016-08-13

看你的了!