我已经在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-docs
,tomcat7-examples
和tomcat7-admins
之类的软件包时,它们会自动部署在/usr/share/tomcat7/webapps
下。同样,在Eclipse中,选择“使用Tomcat安装”选项后,会自动在/usr/share/tomcat7/wtpwebapps
下部署文件。但是,如果必须部署我的Web应用程序,则必须将其放在
/var/lib/tomcat7/webapps
下;我不知道这是否对,也许是,但是为什么呢?另外,当我查看启动Web应用程序时生成的日志文件时,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]
因此,要使所有功能都有效,我需要进行哪些更改?这种文件夹结构可取吗?
最佳答案
这2个目录供tomcat使用,以允许使用单个安装目录配置多个tomcat实例,但每个实例都有其自己的用于部署,日志,conf等的目录。
Tomcat使用以下环境变量(或系统属性)来指定2个目录位置:
有些tomcat安装程序为catalina.base和catalina.home使用相同的目录,如果未设置CATALINA_BASE
,则这是默认行为。
鉴于Ubuntu 14.04 tomcat7的配置:
您应该将应用程序部署到/var/lib/tomcat7/webapps
。唯一应将应用程序部署到$CATALINA_HOME/webapps
的情况是,如果在我的上安装了tomcat7的catalina.base=catalina.home.
,则Ubuntu 14.04 甚至没有创建/usr/share/tocmat7/webapps。
我找到您的帖子的原因是,我最近安装了tomcat7,并遇到了相同的“目录出现问题”警告:
警告是common.loader
中的server.loader
,shared.loader
和$CATALINA_BASE/conf/catalina.properties.
整体的结果。应该是,公用目录,服务器目录和共享目录位于$CATALINA_BASE
下。
我通过将每个*.loader= entry
更改为对这些目录使用catalina.base
而不是catalina.home
(6个位置)来消除警告。
关于tomcat - Ubuntu上的Tomcat 7的文件夹问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27337674/