11

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

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

Tomcat7 的老手可能会很高兴得知这个 Tomcat 系统实例是使用CATALINA_HOMEin/usr/share/tomcat7CATALINA_BASEin安装的/var/lib/tomcat7,遵循/usr/share/doc/tomcat7-common/RUNNING.txt.gz.

但奇怪的是,当我尝试时echo $CATALINA_HOME什么都没有出现。我也不能在默认的 /var/lib/tomcat7/ROOT 中复制/创建任何东西,尽管这只是提供很少的权限但我想知道这是否是正确的方法?

我想做的是在我的家中创建一个单独的目录,我可以在其中放置我的 Web 应用程序,并且 tomcat 可以从那里读取 hem。有没有办法做到这一点?在 apache 中,我可以通过更改文档根目录和目录来做到这一点,但我不知道如何为 tomcat 做到这一点

4

2 回答 2

11

但奇怪的是,当我尝试 echo $CATALINA_HOME 时,什么也没有出现。

这是因为打包版本CATALINA_HOME在启动 Tomcat 之前设置,在从配置文件(通常在 /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 可以从那里读取 hem。有没有办法做到这一点?

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

在 apache 中,我可以通过更改文档根目录和目录来做到这一点,但我不知道如何为 tomcat 做到这一点

Tomcat 对文档根有一套不同的、稍微严格的要求。您需要学习它,并接受它永远不会相同的想法。基本上在“webapps”目录下,是一个 WAR 文件或来自 WAR 文件的扩展目录。就地编辑对 Tomcat 来说不是一个好主意,因为 CGI 等效项不是每次运行时都从磁盘读取,而是链接到 Tomcat 的内存中。这意味着目录中的更改可能不会影响您的 Web 应用程序,这是不必为已部署的 Web 应用程序更改磁盘文件的充分理由。

修改 Web 应用程序,重新打包它,然后更新部署。这确实是使用 Tomcat 的“正确”方式。

于 2012-07-23T18:45:49.317 回答
4

授予 webroot 文件夹 777 权限

sudo chmod -R 777 Webroot

移动到tomcat文件夹后

于 2015-05-05T10:25:08.660 回答