我今天开始进行JAVA web 开发,遇到了一些问题,我在我的ubuntu 机器上安装了我的tomcat7。现在,当我浏览到//localhost:8080 时,我会看到默认的欢迎页面:
这是默认的 Tomcat 主页。它可以在本地文件系统中找到:/var/lib/tomcat7/webapps/ROOT/index.html
Tomcat7 老手可能会很高兴得知这个 Tomcat 系统实例安装在 /usr/share/tomcat7
和 CATALINA_BASE
中的 CATALINA_HOME
在 /var/lib/tomcat7
中,遵循 /usr/share/doc/tomcat7-common/RUNNING.txt.gz
中的规则。
但奇怪的是,当我尝试 echo $CATALINA_HOME
时,没有任何显示。
此外,我无法在默认/var/lib/tomcat7/ROOT 中复制/创建任何内容,尽管这只是提供一些权限的问题,但我想知道这是否是正确的方法?,
我想做的是在我的家里创建一个单独的目录,我可以在其中放置我的 Web 应用程序,并且 tomcat 可以从那里读取下摆。有办法吗?在 apache 中,我可以通过更改文档根目录和目录来做到这一点,但我不知道如何为 tomcat 做到这一点
最佳答案
But strangely when I try echo $CATALINA_HOME nothing shows up.
这是因为打包版本在启动 Tomcat 之前设置了 CATALINA_HOME
,在从配置文件(通常在/etc 中的某处)读取它之后。
Also I can not copy/create anything in the default /var/lib/tomcat7/ROOT though it's just a matter of providing few permissions but I was wondering whether it is the right way to do it?
权限问题与您不是 root(或 Tomcat 用户)有关。大多数打包的 Tomcat 安装(deb 或 RPM)往往会在安装时考虑到特定用户,并且有时将不同的东西复制进去是行不通的。
/usr/share/tomcat7
是您的 CATALINA_HOME
目录,它有指向其他目录的链接,例如 /var/lib/tomcat7/webapps
、/etc/tomcat7
等。你不应该直接复制到一个web应用程序中,你应该将web应用程序打包成一个WAR文件并“部署”它。优点很多。
What I would like to do is create a separate directory in my home where I can put my web application and tomcat can read hem from there. Is there a way to do it?
是的,一个是在“部署网络应用程序”时创建的。查看标准的 Tomcat7 文档,如果您喜欢非命令行界面,请考虑安装“管理器”Web 应用程序。既然您知道 Web 应用程序的“安装”是什么,这可能是一项更容易的任务。
In apache I can do it by changing the document-root and directory but I don't know how to do it for tomcat
Tomcat 对文档根有一套不同的、稍微更严格的要求。您需要学习它,并接受它永远不会相同的想法。基本上在“webapps”目录下,是一个 WAR 文件或来自 WAR 文件的扩展目录。就地编辑对 Tomcat 来说不是一个好主意,因为 CGI 等效项不会在每次运行时从磁盘读取,它们会链接到 Tomcat 的内存中。这意味着目录中的更改可能不会影响您的 Web 应用程序,这足以成为不必为已部署的 Web 应用程序更改磁盘文件的充分理由。
修改 Web 应用程序,重新打包,并更新部署。这确实是使用 Tomcat 的“正确”方式。
关于java - 不能把任何东西放到/var/lib/tomcat7/webapps/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11598852/