我如何弄清楚为什么 tomcat6 webapps dir 符号链接在一台机器上有效,而在另一台机器上无效?

我如何弄清楚为什么 tomcat6 webapps dir 符号链接在一台机器上有效,而在另一台机器上无效?

我最近为 MarkLogic 开发构建了一个 Ubuntu 虚拟机。然后,这台机器被分发给另外 4 名开发人员,以提供一致的开发平台。现在,我正在为开发难题设置另一个部分,它由一些 Java 库和一个 JSP Web 应用程序组成。项目源位于开发人员用户主目录中(每台机器都有完全相同的帐户)。我在目录中添加了一个符号链接,/var/lib/tomcat6/webapps/指向项目目录中的 Web 应用程序源根目录。

/var/lib/tomcat6/webapps/jspapp -> /home/developer/dev/workspace/svn/Project/webapp/

(实际的 JSP 文件位于 Project/webapp 目录中。)

这在我的虚拟机实例上工作正常。我成功地将设置复制到了另一台虚拟机,并且运行正常。但是,我复制设置的其余虚拟机不起作用。在前两台虚拟机上,我获得了 Web 应用程序的页面。在其他虚拟机上,我得到了 404。

所有虚拟机都是从单个原始虚拟机克隆而来的。除了 1 个配置值(本地计算机的 IP 地址)之外,所有 Web 应用程序项目源都相同。我以相同的方式在每个虚拟机上创建了符号链接,并验证了文件和目录的权限/模式是否相同。我比较了 tomcat 安装目录,发现它们之间没有配置差异。我看到的唯一文件差异似乎是 Catalina 的缓存数据。就所有意图和目的而言,设置都是相同的。但显然有些东西不一样。

有人对我如何解决此问题有什么建议吗?我对 Linux 世界还很陌生,对 tomcat 也不太熟悉。

更新- 我将链接目录的内容复制到同名的真实目录中(删除链接后),但仍然不起作用。不过,我/var/lib/tomcat6/webapps/ROOT/index.html看到我放入相关目录中的副本。它的行为几乎就像 JSP 文件被忽略了一样。

答案1

快速检查清单:

  1. 检查allowLinking="true"你的 Tomcat 配置是否已设置:https://stackoverflow.com/questions/315093/configure-symlinks-for-single-directory-in-tomcat/315145#315145

  2. 检查进程的用户tomcat是否具有执行权限每一个目录的父文件夹/home/developer/dev/workspace/svn/Project/webapp/(即/home,,,,,/home/developer... )/home/developer/dev/home/developer/dev/workspace

相关内容