在windows下,到官网(http://tomcat.apache.org/download-80.cgi#8.5.9)下载tomcat8.5.9,选择格式为tar.gz,如下图所示:

通过ftp将下载的tomcat8.5.9压缩包上传到ubuntu服务器,配置VSFTPD可以参看《在Ubuntu16.04下配置VSFTPD》(http://www.linuxdiyf.com/linux/27850.html),然后这里我使用的是Xftp 5作为windows下使用的FTP客户端。上传完成后,进入该文件目录,使用如下命令解压:
sudo tar -zxvf apache-tomcat-8.5.9.tar.gz
解压成功后可以看到该目录下多出了文件夹apache-tomcat-8.5.9:

先在/usr下新建文件夹tomcat,然后将文件夹apache-tomcat-8.5.9移动到目录/usr/tomcat下:
sudo mv apache-tomcat-8.5.9 /usr/tomcat/
进入目录/usr/tomcat可以查看到该文件夹,说明移动成功:

现在先修改一下tomcat文件夹的使用权限,否则可能在当前用户下不能进入bin目录:
cd /usr
sudo chmod 755 -R tomcat

然后进入目录/usr/tomcat/apache-tomcat-8.5.9/bin,编辑文件startup.sh,在最后一行之前加入如下信息:
#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_111
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#tomcat
export TOMCAT_HOME=/usr/tomcat/apache-tomcat-8.5.9
即:

其中JAVA_HOME和TOMCAT_HOME请对应你自己的jdk和tomcat的安装目录。编辑完后保存退出,然后运行startup.sh:
sudo ./startup.sh
出现如下信息则说明tomcat安装成功,并且已经启动。

而且可以在windows下访问虚拟机的8080端口:

如果要关闭tomcat,类似的,需要先在文件shutdown.sh对应位置添加信息:
#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_111
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#tomcat
export TOMCAT_HOME=/usr/tomcat/apache-tomcat-8.5.9
然后执行如下命令即可:
sudo ./shutdown.sh

如果要设置为tomcat开机自启动,需要编辑文件/etc/rc.local,这里存放着开机自启动的程序。(配置在/etc/profile和/etc/bash.bashrc文件中的内容是当有用户登录时才起作用,这不符合tomcat需要启动的实际情况)
现在我们编辑/etc/rc.local:
sudo vi /etc/rc.local
在最后一行之前加入如下信息:(配置你自己的tomcat的startup.sh文件的路径)
#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_111
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
/usr/tomcat/apache-tomcat-8.5.9/bin/startup.sh
即:

执行命令reboot重启系统,然后即可通过在windows下访问虚拟机的8080端口验证tomcat服务已启动:
