是否可以移动tomcat的工作/ Catalina / localhost /目录?

时间:2014-07-23 14:10:47

标签: tomcat

我想知道是否有可能以某种方式改变Tomcat work/Catalina/localhost/目录的路径?

假设我有两个用户:tomcat_install_usertomcat_run_user。 我想将所有tomcat安装和配置文件存储在tomcat_install_user上,并仅将tomcat_run_user用于运行Tomcat进程。我希望tomcat_run_user只拥有其他用户文件的读权限。

但是Tomcat需要在$CATALINA_BASE中创建工作目录。我不想将整个$CATALINA_BASE移动到tomcat_run_user,只移动work目录。它甚至可能吗?如何将Tomcat指向此目录?

1 个答案:

答案 0 :(得分:5)

Tomcat的standard Host implementation支持workDir配置文件中<Host>元素中的server.xml属性。

  

此主机的应用程序要使用的临时目录的路径名。每个应用程序都有自己的子目录,具有临时读写使用。配置上下文workDir将覆盖Host workDir配置的使用。如Servlet规范中所述,该目录将通过名为javax.servlet.context.tempdir的servlet上下文属性(类型为java.io.File)对Web应用程序中的servlet可见。如果未指定,将提供$ CATALINA_BASE / work下面的合适目录。

您可以将其设置为您选择的目录,例如

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" 
    workDir="/home/tomcat_run_user/other_work_dir">

....

</Host>

另请注意,standard Context implementation还提供了属性workDir,该属性会覆盖<Host>元素中的设置,但仅适用于指定一个的应用程序。