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

时间:2011-05-31 10:02:15

标签: tomcat web-applications coldfusion root railo

我想让Apache的/var/www成为我的铁路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文件夹之外?

非常感谢帮助!

1 个答案:

答案 0 :(得分:6)

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

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

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

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

# 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上的http://localhost:8080/文件,该文件位于/var/www/index.cfm,现在位于{{1}}。

请记住,这里没有讨论将Apache HTTPD Web服务器连接到Railo / Tomcat的问题。您可能希望阅读herehere以获取Apache-to-Tomcat代理选项。 Railo Wiki也有Installation Guides部分。