2016-07-14 27 views
2

我已经在Lucee的google组发布了消息,但是四天之后,我只是没有得到我需要的支持。我有一种感觉,Tomcat专家能够很快地将我指向正确的方向,所以我在这里发布。OSX El Cap,Apache2,Tomcat 8,Lucee 5

OSX酋长,Apache2的,Tomcat的8,Lucee 5.

http://localhost,我得到阿帕奇 “它的作品!”页。

http://localhost:8080,我得到默认Lucee页面上,从

/usr/local/Cellar/tomcat/8.5.3/libexec/apps/lucee 

担任http://localhost:8080/manager/htmlhttp://localhost:8080/host-manager/html,我得到Tomcat的管理页面。

我有一个目录,/Volumes/Storage/{companyname}/sites/www-test-app/www包含index.cfm和index.htm的

我有www-test-app在我的HOSTS文件中设置。

我有www-test-app

httpd-vhosts.conf主机条目我在tomcat的server.xml文件中的条目:

<Host name="www-test-app" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
    <Context path="" docBase="/Volumes/Storage/{companyname}/sites/_test-app/www/"> 
    <JarScanner scanClassPath="false"/> 
    </Context>      
</Host> 

当我打电话http://www-test-app/index.htm,我让我的静态测试页。

当我打电话http://www-test-app/index.cfm我得到这个错误:

HTTP Status 404 - 
type Status report 
message 
description The requested resource is not available. 
Apache Tomcat/8.5.3 

我已经停止和重新启动Apache和Tomcat,以确保配置文件读取。

最大的线索: 我没有看到WEB-INF正在根据 /Volumes/Storage/{companyname}/sites/www-test-app/www

我的目录权限是777这个目录的创建及其所有子目录:

/Volumes/Storage/{companyname}/sites 

我不知道,如果尽管我需要改变所有权。

Apache2包含在El Cap中。 Apache testconfig产生“语法OK”。

Tomcat通过Homebrew安装。

Lucee经按本页面WAR文件安装: http://brianflove.com/2015/03/05/lucee-on-mac-os-x-yosemite-quick-start/

我被困在这里......但噢如此接近,因为默认Lucee页面看起来很大,包括任何CFOUTPUT /变量。

这里的是卡特琳娜样本{日期和时间} .LOG:

13-Jul-2016 12:06:02.381 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:  Apache Tomcat/8.5.3 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:   Jun 9 2016 11:16:29 UTC 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:   8.5.3.0 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:    Mac OS X 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:   10.11.5 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:   x86_64 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:    /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:   1.8.0_65-b17 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:   Oracle Corporation 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:   /usr/local/Cellar/tomcat/8.5.3/libexec 
13-Jul-2016 12:06:02.383 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:   /usr/local/Cellar/tomcat/8.5.3/libexec 
13-Jul-2016 12:06:02.384 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/Cellar/tomcat/8.5.3/libexec/conf/logging.properties 
13-Jul-2016 12:06:02.384 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
13-Jul-2016 12:06:02.384 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 
13-Jul-2016 12:06:02.384 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/Cellar/tomcat/8.5.3/libexec 
13-Jul-2016 12:06:02.385 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/Cellar/tomcat/8.5.3/libexec 
13-Jul-2016 12:06:02.385 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/Cellar/tomcat/8.5.3/libexec/temp 
13-Jul-2016 12:06:02.385 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/marc/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. 
13-Jul-2016 12:06:02.578 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 
13-Jul-2016 12:06:02.619 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 
13-Jul-2016 12:06:02.623 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] 
13-Jul-2016 12:06:02.624 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 
13-Jul-2016 12:06:02.625 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 702 ms 
13-Jul-2016 12:06:02.654 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina 
13-Jul-2016 12:06:02.655 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.3 
13-Jul-2016 12:06:02.665 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying configuration descriptor /usr/local/Cellar/tomcat/8.5.3/libexec/conf/Catalina/localhost/ROOT.xml 
13-Jul-2016 12:06:03.183 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
13-Jul-2016 12:06:08.815 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deployment of configuration descriptor /usr/local/Cellar/tomcat/8.5.3/libexec/conf/Catalina/localhost/ROOT.xml has finished in 6,149 ms 
13-Jul-2016 12:06:08.816 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/docs 
13-Jul-2016 12:06:08.837 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/docs has finished in 21 ms 
13-Jul-2016 12:06:08.837 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/examples 
13-Jul-2016 12:06:09.079 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/examples has finished in 241 ms 
13-Jul-2016 12:06:09.079 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/host-manager 
13-Jul-2016 12:06:09.104 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/host-manager has finished in 25 ms 
13-Jul-2016 12:06:09.104 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/manager 
13-Jul-2016 12:06:09.123 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/Cellar/tomcat/8.5.3/libexec/webapps/manager has finished in 19 ms 
13-Jul-2016 12:06:09.157 INFO [www-test-app-startStop-1] org.apache.catalina.core.ApplicationContext.log Marking servlet CFMLServlet as unavailable 
13-Jul-2016 12:06:09.157 SEVERE [www-test-app-startStop-1] org.apache.catalina.core.StandardContext.loadOnStartup Servlet [CFMLServlet] in web application [] threw load() exception 
java.lang.ClassNotFoundException: lucee.loader.servlet.CFMLServlet 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1282) 
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1116) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1061) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1000) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4902) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5212) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1405) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1395) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

找不到断开......我在哪里何去何从?

回答

1

议决{}叹息

嗯,我完全准备好踢我自己的一个$$。解决办法比我想象的更简单。

我的错误理解是配置Lucee EXPRESS在mac上使用本地Apache安装并不会起作用 - 我必须使用tomcat内置的web服务器。 Tomcat Web服务器因为基于Java,所以对于URL中的文件名实际上是区分大小写的 - “Foo.jpg”与“猫”中的“foo.jpg”不同。这就是为什么我放弃了Lucee Express。

我记得试图让本地Apache与Lucee Express一起工作,但自从那次尝试之后已经过了很多时间,我无法开始告诉你我做错了什么。我只知道我无法实现它 - 可能会使用我实际上不需要的配置文件。

无论如何,解决方案很简单,就像所有的...下载Lucee Express。然后,只需配置Apache的虚拟主机作为一个平时那样,作为Apache需要被告知代理任意ColdFusion请求到tomcat/lucee ......像这样:

<Directory "/Volumes/Storage/company/sites/_test-app/www"> 
    Allow From All 
    AllowOverride All 
    Options +Indexes 
    Require all granted 
    DirectoryIndex index.cfm 
</Directory> 

<VirtualHost *:80> 
    ServerName "www-test-app" 
    ServerAlias "www-test-app.*.*.*.*.xip.io" 
    DocumentRoot "/Volumes/Storage/company/sites/_test-app/www" 
    <Proxy *> 
     Allow from 127.0.0.1 
    </Proxy> 
    ProxyPreserveHost On 
    ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://localhost:8009/$1$2 
</VirtualHost> 

然后在另一端,添加了类似条目的Tomcat server.xml文件:

<Host name="www-test-app" appBase="webapps" autoDeploy="true" unpackWARs="true"> 
      <Context path="" docBase="/Volumes/Storage/company/sites/_test-app/www">   
       <JarScanner scanClassPath="false"/> 
      </Context>      
     </Host> 

然后(该死的!!!)刚启动Apache并启动Tomcat/Lucee。而已。 Tomcat将在每个指定的虚拟主机中创建WEB-INF文件。 tomcat web服务器仍在端口8888上运行,并且ajp连接器仍在8009上运行。

http://www-test-app通过Apache(区分大小写的url)给出了结果。

因为Apache具有root权限来侦听端口80,它这样做......并通过CF要求到8009端口

奖金:仍然可以通过使用Tomcat Web服务器测试...

http://www-test-app:8888给结果通过Tomcat Web服务器。

如果有人想绕过Apache,并使用Tomcat Web服务器,完全独立,但不必将“:8888”添加到他们所有的url中,mac的homebrew可以安装“haproxy”,当以root身份运行并使用简单配置文件进行配置,可以接收端口80上的请求并将它们转发到端口8888.

对于任何希望确保文件名在代码中正确指定的新站点(区分大小写 - 明智的),这将是我的最终解决方案。对于最初在不区分大小写的堆栈上运行的旧版应用程序,使用本地Apache Web服务器是一条可行的路线。