tomcat - Ubuntu 上 Tomcat 7 的文件夹问题

标签 tomcat ubuntu

我已经在 Ubuntu 14.04 上安装了 Tomcat 7。主要问题是两个不同的文件夹有时是多余的:

/usr/share/tomcat7

drwxrwxrwx 2 root root 4096 dic 15  2013 backup
drwxrwxrwx 2 root root 4096 set  3 13:28 bin
lrwxrwxrwx 1 root root   21 nov 17  2013 conf -> /var/lib/tomcat7/conf
-rwxrwxrwx 1 root root   39 feb 21  2014 defaults.md5sum
-rwxrwxrwx 1 root root 2030 feb 21  2014 defaults.template
drwxrwxrwx 2 root root 4096 set  3 13:28 lib
lrwxrwxrwx 1 root root   16 nov 17  2013 log -> /var/log/tomcat7
-rwxrwxrwx 1 root root   53 feb 21  2014 logrotate.md5sum
-rwxrwxrwx 1 root root  118 feb 21  2014 logrotate.template
drwxrwxrwx 2 root root 4096 dic  2 13:00 logs
drwxrwxrwx 3 root root 4096 dic  6 17:33 webapps
drwxrwxrwx 3 root root 4096 dic 15  2013 work
drwxrwxrwx 5 root root 4096 dic  2 13:16 wtpwebapps

/var/lib/tomcat7

drwxr-xr-x 3 tomcat7 tomcat7 4096 nov 16  2013 common
lrwxrwxrwx 1 root    root      12 mag 24  2013 conf -> /etc/tomcat7
lrwxrwxrwx 1 root    root      17 mag 24  2013 logs -> ../../log/tomcat7
drwxr-xr-x 3 tomcat7 tomcat7 4096 nov 16  2013 server
drwxr-xr-x 3 tomcat7 tomcat7 4096 nov 16  2013 shared
drwxrwxr-x 4 tomcat7 tomcat7 4096 dic  6 23:51 webapps
lrwxrwxrwx 1 root    root      19 mag 24  2013 work -> ../../cache/tomcat7

当我安装tomcat7-docstomcat7-examplestomcat7-admins等包时,它们会自动部署在下/usr/share/tomcat7/webapps.此外,Eclipse 在选择“使用 Tomcat 安装”选项时,会自动部署 /usr/share/tomcat7/wtpwebapps 下的文件。

但是,如果我必须部署我的 Web 应用程序,我必须将它放在 /var/lib/tomcat7/webapps 下;我不知道这是否正确,也许是的,但为什么呢? 此外,当我查看启动我的网络应用程序时生成的日志文件时,tomcat 提示一些不存在的文件夹;实际上,它们仅存在于 /var/lib/tomcat7 下,而不存在于 /usr/share/tomcat7 下。

Dec 06, 2014 11:50:23 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/common/classes], exists: [false], isDirectory: [false], canRead: [false]
Dec 06, 2014 11:50:23 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/common], exists: [false], isDirectory: [false], canRead: [false]
Dec 06, 2014 11:50:23 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/server/classes], exists: [false], isDirectory: [false], canRead: [false]
Dec 06, 2014 11:50:23 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/server], exists: [false], isDirectory: [false], canRead: [false]
Dec 06, 2014 11:50:23 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/shared/classes], exists: [false], isDirectory: [false], canRead: [false]
Dec 06, 2014 11:50:23 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat7/shared], exists: [false], isDirectory: [false], canRead: [false]

那么,我必须更改什么才能使所有作品正常工作?这种文件夹结构是否可取?

最佳答案

tomcat 使用这 2 个目录来允许配置多个 tomcat 实例,所有实例都使用单个安装目录,但每个实例都有自己的目录用于部署、日志、conf 等。

Tomcat 使用以下环境变量(或系统属性)来指定 2 个目录位置:

CATALINA_HOME (catalina.home), the tomcat install directory and
CATALINA_BASE (catalina.base), the base directory for a tomcat instance

一些 tomcat 安装对 catalina.base 和 catalina.home 使用相同的目录,如果未设置 CATALINA_BASE,这是默认行为。

鉴于 Ubuntu 14.04 tomcat7 配置为:

catalina.home=/usr/share/tomcat7
catalina.base=/var/lib/tomcat7

您应该将应用程序部署到 /var/lib/tomcat7/webapps。应用程序应该部署到 $CATALINA_HOME/webapps 的唯一时间是 catalina.base=catalina.home. 在我的 Ubuntu 14.04 上安装 tomcat7甚至没有创建/usr/share/tocmat7/webapps。

我找到您的帖子的原因是我最近安装了 tomcat7 并遇到了与您收到的相同的“目录问题”警告:

WARNING: Problem with directory [/usr/share/tomcat7/common/classes], exists: [false], isDirectory: [false], canRead: [false]

警告是 $CATALINA_BASE/中 common.loaderserver.loadershared.loader 整体的结果conf/catalina.properties. 公共(public)目录、服务器目录和共享目录应该位于 $CATALINA_BASE 下。

我通过将每个 *.loader= entry 更改为对这些目录使用 catalina.base 而不是 catalina.home 来消除警告( 6 个地方)。

关于tomcat - Ubuntu 上 Tomcat 7 的文件夹问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27337674/

相关文章:

jsp - 请求的资源在 Tomcat 上不可用

hibernate - 我在 tomcat 控制台中收到内存泄漏异常

Bash 更新问题

linux - 如何在shell脚本中无密码切换到另一个用户

tomcat - ./startup.sh : command not found error

xml - Alfresco 模型跟踪错误

java - 我的自定义 jsp 标记库抛出错误 HTTP Status 500 - 无法为 JSP 编译类

java - tomcat 中特定页面/url 模式的 SSL

git - 无法通过 HTTP 推送 git repo

ubuntu - 在 Ubuntu 上安装 Sqlplus