2012-05-31 36 views
3

我剛剛從ColdFusion9升級到OS X上運行包含的Apache Web服務器的ColdFusion10。現在,我用writeToBrowser選項使用cfimage寫入瀏覽器的所有圖像都會拋出404錯誤。如何使用cfimage在Apache上使用ColdFusion 10?

在CF9下,我以前已將Web服務器設置爲使用一些帶有自簽名證書的虛擬目錄來啓用SSL。我不認爲SSL是問題的一部分,但你知道得越多越好。

看起來好像只有一些在安裝過程中沒有做出的某種類型的映射(我已經用相同的結果做了幾次)。

我試着給CFFileServlet目錄添加一個別名,它將我的404s改爲403s,但我不確定該怎麼做來糾正這個問題,因爲所有的文件系統屬性都顯示給大家讀取。

是否有一些關於如何設置虛擬目錄以使CFFileServlet位置在我的網站中工作的指導?

如果我查看實際目錄中的文件,則會正確創建文件。

這裏是什麼在我的virtualHosts文件中的示例:

<VirtualHost *:80> 
     DocumentRoot "/Library/WebServer/Documents/xxxxxxxxxx" 
     ServerName xxxxxxxxxx.local 
     DirectoryIndex index.cfm 
     Options FollowSymLinks 
     Alias /CFIDE /Library/WebServer/Documents/CFIDE 
     Alias /mxunit /Library/WebServer/Documents/mxunit 

     RewriteEngine On 
     RewriteCond %{HTTPS} off 

     RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

    </VirtualHost> 

    <VirtualHost *:443> 
     SSLEngine on 
     SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 
     SSLCertificateFile /etc/apache2/ssl/xxxxxxxxxx.crt 
     SSLCertificateKeyFile /etc/apache2/ssl/xxxxxxxxxx.key 

     DocumentRoot "/Library/WebServer/Documents/xxxxxxxxxx" 
     ServerName xxxxxxxxxx.local 
     DirectoryIndex index.cfm 
     Options FollowSymLinks 
     Alias /CFIDE /Library/WebServer/Documents/CFIDE 
     Alias /mxunit /Library/WebServer/Documents/mxunit 
    </VirtualHost> 

在此先感謝。

回答

5

經過多次試驗和錯誤,在Ben Nadel的網站上看到帖子後,我終於得到了這個工作。我決定把它放在CF10安裝創建的mod_jk.conf文件中,這樣我就可以將所有的cf特定的東西放在一起。在該文件的底部,我增加了一個別名和位置設置權限爲這樣:

Alias /CFFileServlet "/Applications/ColdFusion10/cfusion/tmpCache/CFFileServlet" 
<Directory "/Applications/ColdFusion10/cfusion/tmpCache/CFFileServlet"> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

這樣做之後,我所有的圖像亮權利了。

我打算將此條目標記爲答案,因爲它具有關於如何使其工作的詳細信息,但是我會將獎金授予Kevin,以便指引我朝着正確的方向發展。謝謝凱文!

+0

很高興您能夠正常工作(並感謝您爲下一個人發佈解決方案)。 – Leigh

+0

是的,謝謝你讓我們知道。 – bubbly

0

不知道您是否已經嘗試過,但url解釋了您所描述問題的解決方案。它主要討論關於IIS的問題,但如果你看下面的評論,那麼Apache也嘗試過同樣的解決方案。

+2

您能總結解決方案的要點嗎? (鏈接經常會中斷) – Leigh

1

如果在Apache中使用VirtualHosts,則需要使用JkMountCopy指令。請參閱Apache Tomcat Connector documentation,特別是JkMountCopy指令。

+0

謝謝!我在我的mod_jk.conf文件中添加了'JKMountCopy All'來獲取Tomcat處理請求到CFFileServlet文件夾。 – Seybsen

0

對於CF10標準的Linux上的Apache和標準的安裝目錄,你也可以用這一個:

RewriteEngine on 
RewriteRule ^/CFFileServlet/(.*) /opt/coldfusion10/cfusion/tmpCache/CFFileServlet/$1 [L] 

它與Apache cfimage添加到/etc/httpd/conf/mod_jk.conf

1

CF10在Ubuntu 12.10中顯示空白頁,將以下內容添加到「/etc/apache2/mod_jk.conf」中。

Alias /CFFileServlet "/opt/coldfusion10/cfusion/tmpCache/CFFileServlet" 
<Directory "/opt/coldfusion10/cfusion/tmpCache/CFFileServlet/"> 
Options Indexes FollowSymLinks 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 

然後重新啓動Apache,cfimage writeToBrowser正在工作。

+0

我需要將其添加到指令以獲得訪問該文件夾的權限:要求所有授予 – lhoess

0

我可以通過在「C:\ Coldfusion10 \ cfusion \ tmpCache \ CFFileServlet」中添加一個「CFFileServlet」虛擬目錄,在Windows Server 2008的IIS 8中獲得此項工作。起初它沒有工作,然後我發現我有一個重寫規則啓用,將所有的URL轉換爲小寫。顯然這是區分大小寫的。禁用重寫規則後,我的CFCaptcha圖像再次工作!

0

其中一張海報喬爾曾與該映射的情況下,敏感性質的問題...

編輯C:\ ColdFusion10 \ cfusion \ wwwroot的\ WEB-INF \ web.xml和改變的URL模式servlet映射爲小寫,然後重新啓動CF應用程序服務器將修復問題

請注意,CFFileServlet版本將不再工作。如果您的服務器運行多個CF站點,並且並非所有站點都將URL重寫設置爲小寫,則有一些會中斷。

+2

需要了解的信息。雖然[引用的答案](http://stackoverflow.com/a/20912803/104223)確實提到它是區分大小寫的,所以這應該可能是[註釋](http://stackoverflow.com/help/privileges/評論)(我意識到你不能發表評論,只是FYI)。 – Leigh

相關問題