(我没有收到任何来自或Adobe的反馈。我希望我只是问得不对,并不是没有人知道答案)。
我们正在从CF9升级到CF11,所以我已经将CF11作为一个独立的内部web服务器安装了。由于我们没有使用IIS这样的外部we服务器,而且我们有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地址或主机名的别名。
但是,我是否正确地理解了,它只允许一个网站指向不位于www.root路径中的另一个文件夹位置?我想要的是,对于每个网站,我必须能够指向该网站的根文件夹。我希望每个网站的代码都能正常工作:
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。我遗漏了什么?我无法想象Adobe在其内部web服务器上不会拥有与外部web服务器相同的功能。我们没有足够的资源将CF9、CF11和IIS放在单独的机器上,不需要并行安装CF11就可以测试直接迁移。
发布于 2015-03-08 03:02:25
我不确定这会不会对你有帮助,但我也有同样的问题。我厌倦了在开发环境和活动服务器上有不同的需求,而且我不知道对于上面询问的内容存在什么样的选择。我没有在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,并将dev端口更改为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,这解决了您为我描述的问题。
发布于 2014-12-05 13:19:14
内部web服务器只是为开发人员设计的,并不是功能齐全的。如果你想要一个功能齐全的网络服务器.用一个!如果您不想搞乱IIS,只需安装Apache即可。
尽管如此,您可以通过简单地运行多个CF实例来解决问题,每个实例都有自己的内部web服务器。
https://stackoverflow.com/questions/27279752
复制相似问题