无法将任何内容放入/ var / lib / tomcat7 / webapps /

时间:2012-07-22 08:42:54

标签: java jsp ubuntu webserver tomcat7

我今天开始使用JAVA Web开发并遇到一些问题,我在我的ubuntu机器上安装了tomcat7。现在当我浏览到// localhost:8080时,我得到了默认的欢迎页面:

这是默认的Tomcat主页。它可以在本地文件系统上找到:/var/lib/tomcat7/webapps/ROOT/index.html

Tomcat7资深人士可能会高兴地获悉Tomcat的这个系统实例是CATALINA_HOME中的/usr/share/tomcat7CATALINA_BASE /var/lib/tomcat7中的/usr/share/doc/tomcat7-common/RUNNING.txt.gz,符合{{1}的规则}}

但奇怪的是,当我尝试echo $CATALINA_HOME时,没有任何东西出现。 另外我不能在默认的/ var / lib / tomcat7 / ROOT中复制/创建任何东西,虽然它只是提供一些权限,但我想知道它是否是正确的方法呢?

我想要做的是在我的家中创建一个单独的目录,我可以放置我的Web应用程序,tomcat可以从那里读取下摆。有办法吗?在apache中,我可以通过更改文档根目录来实现,但我不知道如何为tomcat执行此操作

2 个答案:

答案 0 :(得分:10)

  

但奇怪的是,当我尝试echo $ CATALINA_HOME时,没有任何显示。

这是因为打包版本在启动Tomcat之前设置CATALINA_HOME,之后从配置文件(通常是/ etc中的某个位置)读取它。

  

此外,我无法在默认情况下复制/创建任何内容   / var / lib / tomcat7 / ROOT虽然只是提供少量的问题   权限,但我想知道这是否是正确的方法吗?

权限问题与您不是root用户(或Tomcat用户)有关。大多数打包的Tomcat安装(deb或RPM)都倾向于在特定用户的情况下安装,并且有时将内容复制到不同的内容将不起作用。

/usr/share/tomcat7是您的CATALINA_HOME目录,它包含指向其他目录的链接,例如/var/lib/tomcat7/webapps/etc/tomcat7等。您不应该直接复制到在Web应用程序中,您应该将Web应用程序打包到WAR文件中并“部署”它。优点很多。

  

我想要做的是在我家创建一个单独的目录   我可以把我的web应用程序和tomcat从那里读取下摆。   有办法吗?

是的,在“部署Web应用程序”时创建了一个。查看标准的Tomcat7文档,如果您喜欢非命令行界面,请考虑安装“manager”Web应用程序。既然您知道调用Web应用程序的“安装”,那么这可能是一项更容易的任务。

  

在apache中我可以通过更改document-root和目录来实现   我不知道如何为tomcat做这件事

Tomcat对文档根有一组不同的,限制性更强的要求。你需要学习它,并且只是接受它永远不会是相同的想法。基本上在“webapps”目录下,是WAR文件或来自WAR文件的扩展目录。就地编辑对于Tomcat来说不是一个好主意,因为每次运行时都不会从磁盘读取CGI等价物,它们会链接到Tomcat的内存中。这意味着目录中的更改可能不会影响您的Web应用程序,这足以让您不必更改已部署的Web应用程序的磁盘文件。

修改Web应用程序,重新打包并更新部署。这真的是与Tomcat一起使用的“正确”方式。

答案 1 :(得分:0)

  

但奇怪的是,当我尝试echo $ CATALINA_HOME时,没有任何显示。

如果使用此命令安装了tomcat7

sudo apt-get install tomcat7

/ usr / share / tomcat7是你的CATALINA_HOME,你需要在/.bashrc文件中将其添加为环境变量。

sudo vi ~/.bashrc

您可以将此信息添加到文件末尾:

export JAVA_HOME=/usr/lib/jvm/default-java
export CATALINA_HOME=/usr/share/tomcat7

保存并退出.bashrc。您可以通过重新启动bashrc文件来使更改生效。

. ~/.bashrc

现在,您将看到echo $ CATALINA_HOME的路径。

Reference