我刚刚在运行包含的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>
提前致谢。
答案 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)
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重写设置为小写,那么有些会破坏。