我想让 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 的内容。您可能想阅读here或here用于 Apache 到 Tomcat 代理选项。 Railo Wiki 也有这个 Installation Guides部分。
关于tomcat - 如何声明/var/www为Tomcat和Railo ROOT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185933/