我想让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文件夹之外?
非常感谢帮助!
答案 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的问题。您可能希望阅读here或here以获取Apache-to-Tomcat代理选项。 Railo Wiki也有Installation Guides部分。