tomcat - 如何声明/var/www为Tomcat和Railo ROOT?

标签 tomcat web-applications coldfusion root railo

我想让 Apache 的 /var/www 作为我的 Railo CMS 的根目录?我将railo.war放入/var/lib/tomcat6/webapps并将以下内容放入我的/etc/tomcat6/server.xml:

<Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/var/www"/>

现在,当我将 index.cfm 放入/var/www 并转到 http://localhost 时,出现以下错误

Railo [3.2.2.000] - Error (java.io.IOException)
Message No such file or directory
Cause   java.io.IOException
Java Stacktrace 
No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method):-2
at java.io.File.createNewFile(File.java:883):883
at railo.commons.io.res.type.file.FileResource.getOutputStream(FileResource.java:220):220
at railo.commons.io.res.type.file.FileResource.getOutputStream(FileResource.java:209):209
at railo.commons.io.IOUtil.copy(IOUtil.java:135):135

显然 Railo 不接受 .cfm 位于 webapps 文件夹之外?

非常感谢您的帮助!

最佳答案

您已正确设置 Tomcat 主机的根上下文和文档库(Web 根)/var/www与此:

<Context path="" docBase="/var/www" />

但是,这告诉 Tomcat Web 应用程序位于 /var/www 下但您尚未将 WAR 的内容部署到该位置。您将railo.war 放置在 /var/lib/tomcat6/webapps 下,这告诉我您可能已经使用了 tomcat6 的标准 Ubuntu 存储库安装。包裹。如果这个假设是正确的,那么您应该能够浏览到您的 Railo WAR http://localhost:8080/railo/默认情况下。

您要做的就是提取您的railo.war 文件并将其内容放在 /var/www 下(即 WAR 中的 WEB-INF 文件夹)。以下是一些命令,可让您在 /var/www/ 下正确部署 Railo WAR使用<Host>您在问题中指定的配置。我假设您使用的是 Ubuntu,并且使用 tomcat6安装软件包,并在主目录中有一个 Railo WAR 文件 ~/railo.war 。 Ubuntu tomcat6包中 Tomcat 运行为 tomcat6用户,因此您可能需要将文件/目录所有权授予该用户,否则 Railo 将无法将任何文件写入磁盘。

# Change directory to destination for Railo WAR contents:
cd /var/www

# Extract Railo WAR contents:
sudo jar xvf ~/railo.war

# Give Tomcat user file ownership:
sudo chown -R tomcat6 /var/www/

# Restart Tomcat service to ensure root app is picked up:
sudo service tomcat6 restart

您现在应该能够浏览到 index.cfm Railo WAR 中包含的文件位于 http://localhost:8080/ ,现在位于 /var/www/index.cfm .

请记住,这里没有讨论有关将 Apache HTTPD Web 服务器连接到 Railo/Tomcat 的内容。您可能想阅读herehere用于 Apache 到 Tomcat 代理选项。 Railo Wiki 也有这个 Installation Guides部分。

关于tomcat - 如何声明/var/www为Tomcat和Railo ROOT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185933/

相关文章:

java - 如何配置 log4j2 Web 应用程序

java - 不使用 Java Web 框架让生活更美好?

coldfusion - pdf 类型的 Cfdocument 不显示图像?

debugging - 如何在 CFBuilder 中实际配置调试

java - 每个 tomcat 服务器只有一个 servlet 对象吗?

tomcat - 持久化交易型值(value)?

tomcat - 需要在 Tomcat 中运行同一个 Web 应用程序的多个实例

在 localhost 的 Docker 容器中运行的 Tomcat 8 的 Java webapp

tomcat - 本地主机 :8080 displays type error "code" : "Forbidden" on any servers

javascript - ESLint:我如何告诉 eslint 忽略 Coldfusion 评论