2015-12-18 22 views
7

我最近切換到Mac,並且正在運行El Cap。我已經安裝了ColdFusion 10開發人員版本,內部Web服務器,目前是Tomcat 7.0.64。我已經安裝了ColdFusion服務器的所有更新。 locahost上的CF管理員工作正常,並且我設置了端口轉發,以便瀏覽器中的呼叫(端口80)被轉發到默認的CF/Tomcat配置的端口8500.這一切都正常工作。ColdFusion 10 Developer,Tomcat 7.0.64和多個網站

我在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:元素類型 「閥門」 絕後面跟着屬性規範,「>」或「/>」。

我也明白,不建議直接編輯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) 

但爲了避免可能的權限問題,我把出現在我的下方添加的主機的目錄下我的第一個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> 
+0

該錯誤表明您的XML格式不正確,但其中的那個對我來說看起來還不錯。你確定那是破碎的嗎? –

回答

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>  

有很多是進入越來越Mac原生apache + tomcat + lucee安裝!