【问题标题】:ColdFusion 11 Standalone Internal Webserver multiple websitesColdFusion 11 Standalone Internal Webserver 多个网站
【发布时间】:2014-12-03 19:11:54
【问题描述】:

(我没有从 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”>
</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”>

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

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

【问题讨论】:

  • 我最终不得不使用内部 Web 服务器进行并行安装,然后连接到 IIS 以连接到我们的网站,并说先测试一下,让我们只是让它工作。我确实明白你的观点,@Adam Cameron,创建多个 CF 实例将是答案。我想我们现在已经过去了,想要一些东西发挥作用。我们的网站配置并不容易。现在我的问题是让网站正常运行,以及为什么我今天要发布另一个问题。 :{ 感谢您的帮助!

标签: tomcat coldfusion coldfusion-11


【解决方案1】:

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

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

【讨论】:

  • 内部网络服务器只供开发人员使用,功能不全 这是我对最新版本的 ColdFusion 的疑惑。 ColdFusion 11 仍然如此吗?我想知道,因为版本 11 和 10 现在随 Apache Tomcat 一起提供。它仍然不适合生产使用吗?
  • 它比 JRun 的 JWS 更好,但是 ppl 使用 Tomcat 网络服务器,还是仍然使用 HTTPD 或其他方式获取它?
【解决方案2】:

我不确定这是否会对您有所帮助,但我也有同样的问题。我厌倦了对我的开发环境和实时服务器有不同的要求,而且我不知道关于你上面的问题存在什么样的选择。我没有深入研究并在 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 次,这解决了您为我描述的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多