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


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

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

Tomcat7的老手们可能很高兴得知Tomcat的这个系统实例已经安装了 CATALINA_HOME 在 /usr/share/tomcat7 和 CATALINA_BASE 在 /var/lib/tomcat7遵守规则 /usr/share/doc/tomcat7-common/RUNNING.txt.gz

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

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


3166
2017-07-22 08:42


起源

你检查一下吗? .bashrc 如果 CATALINA_HOME 被定义为? - Joseph Elcid
如果你安装了tomcat使用 apt-get,你可以考虑删除它 使用独立版本的tomcat,你可以提取到你的$ HOME目录或方便的其他地方。 - Rob Hruska
为什么要将任何内容复制到ROOT文件夹?部署应用程序只需将其复制到webapps文件夹,或使用Tomcat管理器。 - Tomer
@RobHruska:我不想这样做,因为它会弄乱我的日食配置(这是一种乱糟糟的东西)..没有别的办法吗? - Sudh
Linux发行版有很长的记录,比如Tomcat这样的东西。无论如何,我在这里看不到编程问题,试试serverfault? - bmargulies


答案:


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

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

此外,我无法在默认情况下复制/创建任何内容   / 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中,我可以通过更改文档根目录来完成它   我不知道如何为tomcat做这件事

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

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


10
2017-07-23 18:45



感谢您的详细信息..虽然我删除了tomcat,下载了一个tar并且已经解压缩到我的主文件夹中,但是添加了几个符号链接后我甚至可以使用eclipse修补它...它从那里运行得非常好(至少直到现在)....你认为我以后会遇到一些问题吗?...或者为什么这不是正确的方法呢? - Sudh
您将遇到的问题类型是涉及IT管理的问题类型,而不是涉及开发人员的问题类型。基本上,日志记录未与操作系统的其余部分集成,启动/关闭未与操作系统集成,配置文件不是操作系统存储配置文件的位置,操作系统无法通过默认设置访问二进制文件,没有专用用户限制操作系统范围,库未与OS库集成,并且临时空间不在OS保留的临时空间内。您的设置适合​​开发,只是不要那样部署 - Edwin Buck


将权限777授予webroot文件夹

sudo chmod -R 777 Webroot

移动到tomcat文件夹后


5
2018-05-05 10:25



sudo chmod -R 777 /var/lib/tomcat7/webapps - vanguard69


但奇怪的是,当我尝试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时的路径。

参考


0
2017-08-14 09:39