1

(我没有从 Adob​​e ColdFusion 安装技术帮助或 Adob​​e ColdFusion 论坛获得任何反馈。我希望我只是没有正确询问,并不是没有人知道答案)。

我们正在从 CF9 升级到 CF11,因此我将 CF11 安装为带有内部 Web 服务器的独立设备。由于我们没有使用像 IIS 这样的外部网络服务器,并且我们有 4 个不同的网站要配置,为了不将所有(或至少部分)网页代码更改为指向不同的级别以便可以找到它,请执行我必须使用虚拟目录来执行此操作[即我已经复制了所有 CF9 代码(4 个不同的网站),并且刚刚将 _CF11 添加到主网站文件夹名称的末尾,即 website1_CF11 并为这些网站创建了别名,即 aliases= ”/alias1=E:\website1_CF11 等……”]?

可以创建多个 VD 吗?它们是如何定义的?一个 VD 定义为

<Context
            path="/" 
            docBase="C:\ColdFusion10\cfusion\wwwroot" 
            WorkDir="C:\ColdFusion10\cfusion\runtime\conf\Catalina\localhost\tmp"
            aliases="/VD=C:\newwebroot\VD">
</Context>

我将如何创建多个?这是我需要做的以实现让我的网页以正确级别查看目录结构的目标吗?

我的 server.xml 目前有如下内容:

<Context
                Path=”/”
                docBase=”D:\ColdFusion11/cfusion/wwwroot”
                WorkDir=”D:\ColdFusion11/cfusion/runtime/conf/Catalina/localhost/tmp”
                Aliases=”/CFIDE=D:\ColdFusion11\cfusion\wwroot\CFIDE,
                                /WEB-INF=D:\ColdFusion11\cfusion\wwwroot\WEB-INF,
                                /website1=E:\website1,
                                /website2=E:\website2,
                                /website3=E:\website3,
                                /website4=E:\website4”&gt;
</Context>

我可以放

/VD=E:\website1,

进入上面的代码和 CF 管理工作,但我想我对虚拟目录到底应该做什么有点模糊。我认为它本质上是一个网址或主机名的 IP 地址的别名。

但是我是否正确理解它只允许网站指向不在 wwwroot 路径中的不同文件夹位置?我想要的是每个网站我必须能够指向该网站的根文件夹。我希望每个网站都具有以下内容,以便代码正常工作:

For website1:       http://localhost:8500/index.html
For website2:       http://localhost:8501/index.html
For website3:       http://localhost:8502/index.html
For website4:       http://localhost:8503/index.html

现在别名是行不通的,因为这将是没有意义的,而且很费时间去改变所有的代码,以便它可以找到所有的网页,这样我们就可以测试功能并修复中断。例如,我目前需要将代码更改为以下内容:

<cf_location url=”#URLSessionFormat(‘/webpage/’)#” addtoken=”false”&gt;

<cf_location url=”#URLSessionFormat(‘/alias1/webpage/’)#” addtoken=”false”&gt;

我们最终将运行 wsconfig 可执行文件以连接到 IIS,这样我们就可以从 CF9 完全迁移到 CF11。我错过了什么?我无法想象 Adob​​e 在其内部 Web 服务器上的功能与在外部 Web 服务器上的功能不同。我们没有足够的资源将 CF9、CF11 和 IIS 放在单独的机器上来测试没有并行安装 CF11 的直接迁移。

4

2 回答 2

2

内部 Web 服务器仅用于开发,功能不全。如果您想要一个功能齐全的 Web 服务器...使用一个!如果您不想弄乱 IIS,只需安装 Apache。

也就是说,您可以通过简单地运行多个 CF 实例来解决您的问题,每个实例都有自己的内部 Web 服务器。

于 2014-12-05T13:19:14.367 回答
0

我不确定这是否会对您有所帮助,但我也有同样的问题。我厌倦了对我的开发环境和实时服务器有不同的要求,而且我不知道关于你上面的问题存在什么样的选择。我没有深入研究并在 server.xml 的选项中找到解决方案,而是为每个开发站点创建了一个不同的 server.xml,根文件夹指向相应的站点。所以 website1 有一个 website1.xml,website2 使用了 website2.xml,每个不同的 .xml 文件都指向它对应的 webroot。

获得所有 xml 文件后,我创建了一个接受服务器名称的批处理文件,删除 server.xml,将 websiteN.xml 复制到 server.xml,然后重新启动 CF 应用程序服务器。然后我用它的名字为每个站点创建了一个快捷方式,所以当我需要在 website1 上工作时,我点击 website1,它会为该网站启动我的 CF 服务器。我更新了我的主机文件以指向 www.website1.com 的 127.0.0.1,并将开发端口更改为 80(我不确定它是否适用于 CF11)。这为我创造了一个几乎完全一样的开发环境,这就是我所追求的。

这是批处理文件代码:

ECHO OFF

cd c:\ColdFusion10\cfusion\runtime\conf\
DEL server.xml
COPY %1%.xml server.xml

net stop "ColdFusion 10 Application Server"
net start "ColdFusion 10 Application Server"

并且快捷方式都指向同一个批处理文件,只需传入适当的网站名称,该名称对应于复制过来的 [website].xml 文件。所以快捷方式的目标是:C:\path\to\batch\cfserver.bat website1

只要您不是在日常开发职责中整天来回切换,这应该可以解决问题。如果我必须每天更换 10 次服务器,这真的很烦人,但由于对我来说通常最多 2 或 3 次,这解决了您为我描述的问题。

于 2015-03-08T03:02:25.643 回答