2

我想让 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 不接受.cfms 在 webapps 文件夹之外?

非常感谢您的帮助!

4

1 回答 1

6

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

<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(即WEB-INF来自 WAR 的文件夹)。以下是一些命令,可让您/var/www/使用<Host>您在问题中指定的配置正确部署 Railo WAR。我假设您在 Ubuntu 上,安装了tomcat6软件包,并且在您的主目录中有一个 Railo WAR 文件,即~/railo.war. Ubuntutomcat6软件包以用户身份运行 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 的内容。您可能想在此处此处阅读Apache-to-Tomcat 代理选项。Railo Wiki 也有这个安装指南部分。

于 2011-06-21T15:05:09.613 回答