如何让cfimage在Apache上使用ColdFusion 10?

时间:2012-05-31 02:04:35

标签: apache tomcat coldfusion osx-lion coldfusion-10

我刚刚在运行包含的Apache Web服务器的OS X上从ColdFusion9升级到ColdFusion10。现在,我使用带有writeToBrowser选项的cfimage写入浏览器的所有图像都会抛出404错误。

在CF9下,我之前已将我的Web服务器设置为使用带有自签名证书的几个虚拟目录来启用SSL。我不认为SSL是问题的一部分,但你知道的越多越好。

在安装过程中看起来只有缺少某种类型的映射(我已经用相同的结果完成了几次)。

我尝试在CFFileServlet目录中添加别名,将404更改为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>

提前致谢。

7 个答案:

答案 0 :(得分:6)

经过多次反复试验并查看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>

这样做之后,我的所有图像都会亮起来。

我打算将此条目标记为答案,因为它有关于如何使其工作的详细信息,但我会将奖励奖励给凯文,指出我正确的方向。谢谢凯文!

答案 1 :(得分:1)

如果在Apache中使用VirtualHosts,则需要使用JkMountCopy指令。请参阅Apache Tomcat Connector documentation,尤其是JkMountCopy指令。

答案 2 :(得分:1)

使用Apache cfimage的Ubuntu 12.10上的CF10显示空白页面,将以下内容添加到“/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现在正在工作。

答案 3 :(得分:0)

不确定您是否已经尝试过,但此url解释了您所描述的问题的解决方案。它主要讨论IIS,但是如果你看一下下面的评论,也可以在Apache上尝试相同的解决方案。

答案 4 :(得分:0)

对于使用Apache和标准安装目录的Linux上的CF10标准版,您也可以使用这个:

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

将其添加到/etc/httpd/conf/mod_jk.conf

答案 5 :(得分:0)

通过在“C:\ Coldfusion10 \ cfusion \ tmpCache \ CFFileServlet”中添加“CFFileServlet”虚拟目录,我能够在Windows Server 2008上的IIS 8中运行。起初它不起作用,然后我发现我启用了重写规则,将所有URL转换为小写。显然这是区分大小写的。禁用该重写规则后,我的CFCaptcha图像再次运行!

答案 6 :(得分:0)

一张海报Joel对此映射的区分大小写有一个问题......

编辑C:\ ColdFusion10 \ cfusion \ wwwroot \ WEB-INF \ web.xml并将servlet映射的url-pattern更改为小写,然后重启CF应用程序服务器将解决问题

请注意,CFFileServlet版本将不再适用。如果你有服务器运行多个CF站点,而不是所有的站点都有一个URL重写设置为小写,那么有些会破坏。