首先,需要把apache=tomcat安装目录里面的

bin/
conf/
logs/
webapps/
work/

都拷贝到自定义WEB应用目录下,比如 /home/app/test.aliyun.com/,这个目录以后就是部署该项目的操作目录,下面用yourdomain来代替。

文件夹部署方式(非war包)

方式一 默认配置,直接扔包:

在webapps下面建立ROOT目录,此ROOT目录为tomcat默认根网站的目录,ROOT名称区分大小写,必须为大写

将应用程序的war包解压后放到ROOT目录下,此时webapps底下的目录应该为这种形式

yourdomain/webapps/ROOT/* (*代表WEB-INF等)

不需要修改yourdomain/conf/server.xml文件。

然后在yourdomain/bin/目录下创建start和stop的shell文件

文件内容如下:

start.sh

export CATALINA_BASE=/home/user/app/test.aliyun.com/
export CATALINA_HOME=/home/app/apache-tomcat-7.0.62/
export JAVA_OPTS="$JAVA_OPTS -Xloggc:/home/appuser/app/test.aliyun.com/logs/temp_gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/user/app/test.aliyun.com/logs/“
cd $CATALINA_HOME/bin ./startup.sh jpda
tail -fn 500 /home/user/app/testjx.aliyun.com/logs/catalina.out

stop.sh

ps -ef | grep test.aliyun.com | grep -v 'grep' | awk '{print $2}' |xargs kill -9

这两个文件在以下流程中通用。

然后启动就可以

方式二 修改webapps下文件路径:

在 yourdomain/webapps/下创建文件夹,比如 yourdomain/webapps/yourAppName ,

然后把ROOT目录删除,将web应用的内容拷贝到yourAppName目录下,此时webapps目录应该为这种形式

yourdomain/webapps/yourAppName/* (*代表WEB-INF等)

由于此时默认的ROOT目录没有了,但因为webapps下面有文件夹,所以会把yourAppName里面的内容当做一个web应用加载并启动起来,

虽然web应用启动了,但是访问的时候会出现404错误,这是因为访问的时候tomcat默认去ROOT下面寻找资源,而ROOT已删除,则资源肯定是查找不到的

此时我们需要配置

conf/server.xml

在<Host name=“localhost”  一栏下面加上

<Context path="/" docBase="/home/appuser/app/testjx.aliyun.com/webapps/yourAppName" debug="0" reloadbale="true" privileged="true"> </Context>

将根路径从原来默认的ROOT指向我们自定义的yourAppName文件夹

此时执行 bin/stop.sh   bin/start.sh就可以启动了,启动完毕即可正常访问,如果需要添加多个应用,则指定多个context即可。

如果我们只想把web应用直接放在webapps下面,而不想在webapps下面建立文件夹再放进去怎么办呢?

实际上是可以的,我们来看

方式三 将web应用解压到webapps下面:

现在的文件夹目录如下

yourdomain/webapps/* (*代表WEB-INF等)

如果此时启动tomcat,tomcat会将webapps下的每一个文件夹当做一个上下文进行加载,导致一个web应用被拆分成N个web容器,此时访问极易出异常,

为了避免这种情况,我们需要修改server.xml

将其中的

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true”> 

修改为

<Host name="localhost"  appBase=“anotherwebapps"  unpackWARs="true" autoDeploy="true”>

此时再启动就可以了,这种方式其实等同于另外一种情况,就是你的web应用可以自己组织放在任何地方,而server.xml里面依然是

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true”> 

这种配置不变,需要变的是Context节点的配置

<Context path="/" docBase="/home/user/app/test.aliyun.com/webapps" debug="0" reloadbale="true" privileged="true"></Context>

将其中的docBase指向你自定义的web应用目录,就可以实现根据要求自行组织web应用群结构的目的了

War包部署方式:

我们可以直接将war包扔到webapps目录下,此时尚需配置Context节点,将docBase指向war包的名字,不含后缀

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true”> <Context path="/" docBase=“yourAppName.war" debug="0" reloadbale="true" privileged="true”> </Context>
</Host>

这种配置其实是上面的方式二,只是省了解压这一步骤,tomcat帮你做了。也可以不加Context,只是这样访问的时候url需要加上你的应用名

localhost:port/yourAppName/index.html

Tomcat自定义部署相关推荐

  1. Linux下在tomcat上部署项目

    date: 2018/12/12 10:17:40 一 项目打包 1 IDEA打包方式 了解IDEA项目结构: 快捷键Ctrl+Shifr+Alt+s 此处可以选择要打的包形式 在Tomcat中配置, ...

  2. Tomcat的部署学习

    Tomcat的安装配置 一.下载 我知道有两个地方可以下载,一个是Apache的官方网站,一个是清华大学开源软件镜像站.两个都挺好用的.(以下载Tomcat8为例) Apache Tomcat® - ...

  3. tomcat服务部署与nginx负载均衡

    中间件产品介绍 ​ 目前来说IBM的WebSphere. Oracle的Weblogic占据了市场上Java语言Web站点的部分份额.该两种软件由于无与伦比的性能及可靠性等优势被广泛应用于大型互联网公 ...

  4. 在tomcat下部署两个或多个项目时 log4j和web.xml配置webAppRootKey 的问题(转)

    在tomcat下部署两个或多个项目时 web.xml文件中最好定义webAppRootKey参数,如果不定义,将会缺省为"webapp.root",如下: <!-- 应用路径 ...

  5. 在Tomcat中部署Java Web应用程序几种方式

    在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录.  一.静态部署       静态部署指的是我们在服务器启动之 ...

  6. eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法

    eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法 参考文章: (1)eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法 (2) ...

  7. Intellij IDEA 创建Web项目并在Tomcat中部署运行

    一.创建Web项目 1.File -> New Module,进入创建项目窗口 2.选择Java类型,在 Module name 处输入项目名,点击Next 3.勾选 Web Applicati ...

  8. 如何在tomcat前部署一个nginx

    在tomcat应用已经发布后,如何在tomcat前部署一个nginx,可以正常访问jsp,静态资源(html,css,js) 这里tomcat的端口号是8888 1 upstream morris { ...

  9. IDEA9+Tomcat热部署配置二法

    IDEA9+Tomcat热部署配置 idea9的web开发配置方式与之前的版本发生了大的变化,idea其实也可以像MyEclipse一样自动热部署,不过配置稍微麻烦了一些. 环境: Idea9.03 ...

最新文章

  1. docker安装kafka消息队列
  2. 水稻微生物组时间序列分析4-随机森林回归
  3. PHP foreach 小结
  4. c++ 打印条码_金蝶盘点机PDA仓库条码管理之——外购入库扫码开单操作
  5. 学计算机土味情话,计算机土味情话
  6. java如何取出数组指定数据6_java 从数组取出指定数量的值,相加大于等于或小于等于指定的值,取出对应的组合下标,下标不能重复...
  7. java邮件附件名称乱码_Javamail 中附件中文名字乱码祥解 (转)
  8. 让VS2008对JQuery语法的智能感知更完美一点(转载)
  9. python批量提取word指定内容_python 批量提取word应聘登记表数据+情感分析
  10. 想知道程序员每天在干嘛吗?
  11. Jetson nano 开机自动连接 Wifi
  12. 制作可爱的小黄人插图
  13. 在树莓派开发板上进行ROS开发+语音交互系统设计
  14. 项目开发遇到前端传递时间问题处理
  15. 基于ESP8266的STM32物联网开发板
  16. 什么是数据库连接池?
  17. 高斯消元法的MATLAB代码
  18. 【路径规划】基于卡尔曼滤波、三次插值实现极速赛道赛车路径规划附matlab代码
  19. 2021“遇见未来”千锋十周年冬令营活动全国四地火热开启
  20. 怎么用python制作随机点名软件_如何用python编写一个简易的随机点名软件

热门文章

  1. leetcode1082. 销售分析 I (SQL)
  2. leetcode13. 罗马数字转整数
  3. Linux内核OOM机制的详细分析
  4. java 三位数的水仙花数
  5. Git SSH key配置
  6. python 基础知识点整理 和具体应用
  7. 最佳Linux服务器发行版
  8. H.264将普及 视频编码讲坛之H.264前世今生
  9. MyBatis : Example 条件查询 in 用法
  10. 帆软地址栏传参,实例