4

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

在 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>

提前致谢。

4

7 回答 7

6

经过多次试验和错误并查看本纳德网站上的帖子,我终于得到了这个工作。我决定把它放在 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,因为它为我指明了正确的方向。谢谢凯文!

于 2012-06-06T02:12:48.007 回答
1

如果在 Apache 中使用 VirtualHosts,您需要使用 JkMountCopy 指令。请参阅Apache Tomcat 连接器文档,尤其是 JkMountCopy 指令。

于 2013-03-06T14:53:54.763 回答
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 现在可以工作了。

于 2013-10-18T00:42:40.413 回答
0

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

于 2012-06-04T06:50:14.307 回答
0

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

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

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

于 2013-04-12T16:20:54.560 回答
0

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

于 2014-01-03T21:14:49.963 回答
0

一位海报乔尔对此映射的大小写敏感性质有疑问......

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

请注意,CFFileServlet 版本将不再工作。如果您的服务器运行多个 CF 站点,并且并非所有站点都将 URL 重写设置为小写,那么有些会中断。

于 2016-04-25T19:45:03.953 回答