我在Ubuntu 14.04上安装了Tomcat 7。主要问题是两个不同的文件夹有时是多余的:
的/ usr /共享/ 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
下。此外,当选择“使用Tomcat安装”选项时,Eclipse会自动在/usr/share/tomcat7/wtpwebapps
下部署文件。
但是,如果我必须部署我的网络应用程序,我应该将其置于/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]
那么,我要改变什么才能完成所有工作?这个文件夹结构是否可以理解?
答案 0 :(得分:5)
tomcat使用这两个目录来允许使用单个安装目录配置多个tomcat实例,但每个目录都有自己的部署目录,日志,配置等。
Tomcat使用以下环境变量(或系统属性)来指定2个目录位置:
CATALINA_HOME(catalina.home),tomcat安装目录和
CATALINA_BASE(catalina.base),tomcat实例的基本目录
某些tomcat安装对catalina.base和catalina.home使用相同的目录,如果未设置CATALINA_BASE
,则默认行为。
鉴于Ubuntu 14.04 tomcat7配置:
的catalina.home =的/ usr /共享/ 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并遇到了同样的问题"目录问题"你得到的警告:
警告:目录存在问题[/ usr / share / tomcat7 / common / classes],存在:[false],isDirectory:[false],canRead:[false]
警告是common.loader
,server.loader
和shared.loader
进入$CATALINA_BASE/conf/catalina.properties.
的结果。正如它们应该的那样,公共,服务器和共享目录位于{ {1}}。
我删除了警告,将每个$CATALINA_BASE
更改为使用*.loader= entry
而不是catalina.base
用于这些目录(6个位置)。
答案 1 :(得分:5)
我认为有更好的答案。
如上所述:https://bugs.launchpad.net/ubuntu/+source/tomcat7/+bug/1308284 在这里:https://bugs.launchpad.net/ubuntu/+source/tomcat7/+bug/1232258,这是解决此问题的最佳方法(适用于更多场景,尤其是当您使用tomcat7-user软件包时):
cd /usr/share/tomcat7
sudo ln -s /var/lib/tomcat7/common/ common
sudo ln -s /var/lib/tomcat7/server/ server
sudo ln -s /var/lib/tomcat7/shared/ shared
也许没必要:
sudo ln -s /var/lib/tomcat7/conf/ conf
sudo ln -s /var/lib/tomcat7/logs/ logs
sudo mkdir /usr/share/tomcat7/temp