ColdFusion 10 Developer,Tomcat 7.0.64和多个网站

Fra*_*our 7 xml apache coldfusion tomcat coldfusion-10

我最近换了Mac,正在运行El Cap.我已经安装了ColdFusion 10开发人员版,内部Web服务器,目前是Tomcat 7.0.64.我已经安装了ColdFusion服务器的所有更新.locahost上的CF管理员工作正常,我设置端口转发,以便浏览器(端口80)中的调用转发到默认的CF/Tomcat配置端口8500.这一切都正常.

我在windows中工作的方式非常简单.如果我有一个网站www.example.com,我会在HOSTS中设置一个名为www-example-com的本地名称,并在IIS中创建该主机.超过30个网站已遵循此命名约定,并且运行良好,我希望使用我的本地CF/Tomcat配置复制它.

我正在编辑文件/Applications/ColdFusion10/cfusion/runtime/conf/server.xml,并认为只需添加另一个<Host>块即可.相反,当我尝试启动ColdFusion时,我收到错误.没有我添加的块,它工作正常.我已经在下面提供了我当前的server.xml文件,添加了我的块.我在启动时看到的错误是:

警告:Catalina.start使用/Applications/ColdFusion10/cfusion/runtime/conf/server.xml org.xml.sax.SAXParseException:元素类型"Valve"必须后跟属性规范,">"或"/>".

我也明白不建议直接编辑server.xml,事实上,将每个站点的/主机的Tomcat配置的XML文件存在于各自的目录结构中的某个位置会很不错.

我计划的每个站点的目录结构是:

 /Sites/www-example-com
 /Sites/www-example-com/files/private (not web accessible; subdirectories for various private files the site may use, including perhaps tomcat xml config files, etc)
 /Sites/www-example-com/files/public (virtual directory, mapped to appear directly under web root)
 /Sites/www-example-com/www (the root web application directory)
Run Code Online (Sandbox Code Playgroud)

但为了避免可能的权限问题,我将我的第一个Web应用程序放在下面添加的主机中显示的目录下.

那么我需要做什么才能获得我正在寻找的配置?或者我是否完全编辑了错误的文件,考虑到tomcat与CF捆绑在一起?(我认为这不重要,因为它仍然使用相同的server.xml文件,我认为他们没有以任何方式搞砸了Tomcat.)

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8007" shutdown="SHUTDOWN">
   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
   <Listener className="org.apache.catalina.core.JasperListener" />
   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
   <GlobalNamingResources>
      <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" />
   </GlobalNamingResources>
   <Service name="Catalina">
      <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4" />
      <Connector executor="tomcatThreadPool" maxThreads="50" port="8500" protocol="org.apache.coyote.http11.Http11Protocol" connectionTimeout="20000" redirectPort="8445" />
      <Connector port="8012" protocol="AJP/1.3" redirectPort="8445" tomcatAuthentication="false" />
      <Engine name="Catalina" defaultHost="localhost" jvmRoute="cfusion">
         <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
         </Realm>
         <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false" />
         </Host>
         <!-- START: the block i tried to add -->
         <Host name="www-example-com" appBase="/Applications/ColdFusion10/cfusion/www-example-com/www" unpackWARs="false" autoDeploy="false">
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false" />
         </Host>
         <!-- END: the block i tried to add -->
      </Engine>
   </Service>
</Server>
Run Code Online (Sandbox Code Playgroud)

Fra*_*our 2

我最终将 Lucee 和 Tomcat 作为捆绑包安装,然后找到了有关如何为多个主机配置 tomcat 的信息。答案(除了确保 Mac 的本机 apache 和 tomcat 已连接之外)是每个条目显示如下(注意没有 VALVE 条目 - 不允许或不需要):

<Host name="www-demo-dev"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/Users/me/sites/www-demo-dev/www" />
    <Alias>www-demoalias-dev.10.10.10.10.xip.io</Alias>
</Host>     
Run Code Online (Sandbox Code Playgroud)

安装 Mac 原生 apache + tomcat + lucee 需要做很多事情!