哪位大牛在 IIS 7 下用 iis nodejs 搭建网站 配置成功了

):如何在IIS7上配置 FTP7并使用IIS管理凭据方式进行验证?
&在 Windows Server 2008 R2 发布后,gOxiA 就开始着手于相关的测试和评估。IIS 是重点测试和评估之一!而今天与大家分享的是如何在&&IIS7 上配置 FTP7 使用 IIS管理凭据 方式进行身份验证。提到 MSFTP 服务,恐怕知道的人多,但是真正使用的人少!特别是 IDC 环境下多数会选择 Serv-U FTP Server,gOxiA 从 Windows Server 2008 开始就不再使用 Serv-U,原因很简单!Serv-U 不是免费的,此次 Serv-U 默认存在安全隐患。况且开放 FTP 也是为了方便自己维护网站,下载上传资料用!所以用系统自身的软件不是更好!维护也相对容易很多!但是,使用过 MSFTP 的朋友知道从&&FTP7 开始,微软才为 MSFTP 设计提供了对非 Windows 身份验证功能的支持,也就是说如果我们要访问 MSFTP 则不必再在系统里添加用户帐号,而可以使用 IIS 来统一管理单独的凭据!现在我们再也不用担心,使用 MSFTP 会存在用户帐号安全隐患的问题。
&&&&&&&&这是一篇 Step by Step,所以其中涉及到的相关原理及知识内容不作过多介绍!我们将通过 IIS7 提供的 IisManagerAuth 身份验证模块来实现 IIS管理凭据的 FTP 帐号。具体步骤如下:
&&&&&&&&在 开始配置之前,我们需要修改相关目录的目录安全权限,这一步骤是必须的,否则在登录 FTP 的时候会出现错误。如下图所示,我们会看到由于权限不足导致无法读取配置文件的错误提示。而无权限读取的文件是位于 inetsrv\config 下的 redirection.config 文件。经过 gOxiA 的测试发现即使为该文件添加了相应的权限但仍提示登录失败,最终要配置 config 目录权限,赋予 Network Service(FTP7 进程的默认帐户)有读取权限后才能正常登录。
&&&&&&&&为了简单的演示目录权限的设置过程,gOxiA 参考了 IIS.net 中相关文章的命令行,其中涉及到的 cacls 可以直接运行就可以得到参数帮助。要执行的命令行如下:
cacls c:\windows\system32\inetsrv\config /G &Network Service&:R /E
&&&&&&&&配置了 config 目录权限后,请确保 &Network Service&对该目录下的 administration.config 和 redirection.config 文件有读取权限,否则请执行如下命令行:
cacls c:\windows\system32\inetsrv\config\administration.config /G &Network Service&:R /E
cacls c:\windows\system32\inetsrv\config\redirection.config /G &Network Service&:R /E
&&&&&&&&之后创建一个 FTP 的默认目录,注意请添加&Network Service&有完全控制的权限。
&&&&&&&&下面,我们开始配置 IIS7,创建一个 FTP 站点,为其启用 IisManagerAuth,并创建一个 IIS管理凭据的帐户,使其具备 FTP 相应的访问权限。
&&&&&&&&在开始之前请确认已经安装了 IIS7 的 管理服务组件,否则请进入服务器管理,单击添加角色服务,选中 IIS7 的管理服务组件,进行安装。
&&&&&&&&默认可以使用 C:\Inetpub\Ftproot 作为 FTP 主目录,当然也可以根据自己的需要创建或选择一个目录,但是需要注意,请赋予&Network Service&有完全控制权限。
&&&&&&&&下来我们配置 IIS7 启用 IIS管理器凭据,在启用之后才能使用 IisManagerAuth。为此,打开 IIS管理器,双击&管理服务&,选中&Windows 凭据或 IIS 管理器凭据&,最后单击右边操作列表下的&应用&。
&&&&&&&&之后使用&IIS管理器用户&创建一个 IIS 所管理的用户帐号。为此,双击&IIS 管理器用户&,单击&添加用户&,在弹出的窗体中输入用户名和密码。
&&&&&&&&上述操作一旦完成,就可以开始创建一个 FTP 站点,首先选中 IIS 管理器左边的导航窗体中的&网站&,之后单击鼠标右键,左键单击&添加 FTP 站点&&。
&&&&&&&&&站点信息&中输入 FTP 站点名称,如:Default FTP Site。并选择默认的内容目录,本例中 gOxiA 使用的是 C:\inetpub\ftproot,单击&下一步&。
&&&&&&&&在&绑定和 SSL 设置&中,根据需要启用虚拟主机名,注意:FTP&虚拟主机名&可能不被一些客户端所支持。此外请将 SSL 默认的配置&需要&更改为&允许&,否则如果不配置 SSL 证书并使用 SSL FTP 登录方式将导致客户端连接失败。
&&&&&&&&在 &身份验证和授权信息&配置中,更具需要选择身份验证方式,并指定一个用户和权限。如果你只允许 IIS管理器用户能够访问该 FTP 站点,那么这一步可以不配置,直接单击&完成&。方便大家的学习,本例中允许系统用户中的 Administrator 对该 FTP 有读取和写入的权限。
&&&&&&&&现在以 Windows 身份验证方式的 FTP 站点已经创建好了,下面我们可以使用 Administrator 来登录 FTP。
&&&&&&&&经过测试,创建的 FTP 站点已经正常运行,下面我们将要为该 FTP 站点添加之前创建的 IIS管理器用户 & goxia 有相应的访问权限。
&&&&&&&&首先,选中&Default FTP Site&,在内容窗体中双击&FTP 身份验证&,进入&FTP 身份验证&设置后单击右边操作中的&自定义提供程序&&,在弹出窗体中勾选&IisManagerAuth&。
&&&&&&&&启用了 IisMangerAuth 后,打开&FTP 授权规则&,添加指定的用户 & goxia,并赋予有相应的访问权限。
&&&&&&&&最后我们来使用 goxia 这个 IIS 管理器用户登录 FTP 进行测试。
&&&&&&&&如 果首次登录失败,提示无法验证用户和密码,则需要打开该 FTP 站点的&IIS 管理器权限&设置,添加 goxia 这个帐号。之后测试登录成功后再将其帐号从中删除即可。查找 IIS.net 的相关指引文档,发现默认是要执行这步配置的,但是 gOxiA 认为这一步是配置用户是否具有该 FTP 的远程管理权限的,一旦配置并启用 IIS 的远程管理服务,那么该帐号具备的权限可能会造成安全隐患。目前 gOxiA 也未完全理解。希望有网友指点一二!西西软件下载最安全的下载网站、值得信赖的软件下载站!
→ windows2008中正确使用IIS7配置PHP与MySQL
V1.0 绿色版
类型:站长工具大小:92KB语言:中文 评分:5.0
windows2008的IIS7下配置PHP+MySQL+ZendOptimizer-windows2008下安装phpwind8.0(博主有个小请求:如果哪位看了该帖对您有什么帮助或我的总结有什么错误欢迎点评并提出宝贵意见及建议,成分感谢!)
具体软件环境如下:
windows2008标准版,IIS7.0(windows2008系统自带),
PHP5.2.14,MySQL5.1.48,ZendOptimizer以上软件三款软件均官方下载,
我刚开始配置时软件是从百度随便搜索下载的,但始终配置不成功,后来
从官方网站下载问题就少多了,强烈建议从官方下载会少走些弯路。
1.在配置之前要保证win2008的IIS7安装比较全面像Web万维网服务器中的组件能安装的最好都安装上
尤其是ISAPI扩展ISAPE筛选器,CGI要安装上,并且要添加上ISAPI或CGI限制,这一步操作很关键关系到下边的成败,添加操作如下打开IIS管理器,点击起始页下边的那一项,该项是你电脑名字命名的而并不你的站点名字,一定要看清楚,在右边窗口中找到并打开&ISAPI或CGI限制&,点击右键&添加&&ISAPI或CGI路径&定位D:\php5\php5isapi.dll,描述就随便写了,我写的是php,并将&允许执行扩展路径&打上对钩,确定OK。
2.安装PHP:
比较简单如果是压缩版的解压到了D:\php5下,例如我的是安装版的也指定到了d:\php5目录中,
建议PHP,Mysql都安装在非系统盘下以免日后麻烦,安装的目录也不要带有中文,以免接下来的配置及日后应用出现
未知的错误,同时在系统的path变量中加入d:\php5和d:\php5\ext,当然要注意格式如果在变量内容尾部加要保证d:\php5
前边有个分号;并且d:\php5和d:\php5\ext之间也要有个分号,添加好后确定,要重启电脑才会生效。
3.配置PHP:
将D:\php5下的php.ini-list文件名更改为php.ini,打开php.ini进行配置。
先修改extension_dir,它的目录指向必须准确,即extension_dir = &d:/php5/ext&,找到register_globals = Off 修改为On,再定位到Windows Extensions将以下常用的dll文件开启,开启的方法就是将前边的分号;去掉即可
extension=php_bz2.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_odbc.dll
extension=php_xmlrpc.dll(注意如果加上了extension=php_curl.dll我这里会出错显示FastCGI 进程意外退出禁用后正常)
找到disable_functions =,修改为:
isable_functions =phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
保存好后,同时将php.ini复制到c:\windows下一份。
4.配置IIS分两步走分别是:让IIS7以ISAPI方式配置PHP5.2.14和让IIS7以FastCgi方式配置PHP5.2.14。
第一步让IIS7以ISAPI方式配置PHP:
在IIS管理器中新建一个站点和平时建立asp站点操作过程一样,如我的站点名字为phptest建立完成后关键在下边的设置,将IIS根据站点自动生成应用程序池phptest点击右键选择-&基本设置,将.NET Framework版本下的值修改为&无托管代码&,再将托管管道模式(M)修改为:&经典&-&确定。
点击一下站点phptest,在右边的窗口中双击打开&ISAPI筛选器&,再右击&添加&,&筛选器名称&输入php(这个名称可以自定义),下边的&可执行文件&选择一下右边的浏览按键,将窗口定位到D:\php5中,选择php5isapi.dll,然后确定如果再出现什么提示就选择YES就行。
同样在站点的右边窗口中选择打开&处理程序映射,右键盘单击选择&添加脚本映射&,&请求路径&输入*.php,&可执行文件&参考上边添加ISAPI筛选器的操作同样选择文件php5isapi.dll,名称我的定义为php-isapi,可以随便起名,点击确定,出现提示后点击YES。到此IIS7就可以以ISAPI方式运行php程序了。&&接下来测试一下配置的效果,在phptest站点的默认文档中添加index.php,这个index.php文件的内容如下:
&?php phpinfo();?&保存好后,如果你的站点地址是本机端口是默认的80,在IE输入http://127.0.0.1/就可以看到php服务器的介绍信息了参考截图。如果能顺利看到这个信息就说明你的php可以正常的以ISAPI方式运行了。
第二步让IIS7以FastCgi方式配置PHP:
接着修改IIS,点击打开IIS站点phptest右边窗口的处理程序映射,右键盘单击选择&添加模块映射&,这步看清楚了:不是脚本映射而是模块映射,&请求路径&输入*.php,模块选择&FastCGIModule&可执行文件&参考上边添加ISAPI筛选器的操作,不过这里要将文件的*.dll类型修改为*.exe类型,将文件浏览窗口定位到d:\php5中选择文件php-cgi.exe,点击确定,名称随便起我的叫php-fastcgi,点击确定在出现的提示中选YES。
接着打开d:\php5中的php.ini,找到以下地方进行修改:
fastcgi.impersonate=1 默认为0,如果使用IIS,你需要改为1将其开启,并将前边的分号;去掉以保证启用该项功能。
cgi.fix_pathinfo=1修改为1并将前边的分号;去掉以保证启用该项功能。
cgi.force_redirect=0 默认开启,如果你使用IIS,可以将其关闭或为其加上分号;我这里默认是关闭的所以不用管。其次指定php工作的时区:date.timezone,即date.timezone= Asia/Shanghai.(当然这些需要用的的项目前边的分号;都要去掉的下边不再重复)到此为止就可以让IIS7以FastCgi方式运行php程序了。
而且如果你细心的话会发现在两次运行index.php进行php信息测试时,index.php中的Server API项在没有进行FastCGI配置前是&& ISAPI, 进行FastCGI配置后是CGI/FastCGI。
5.安装mysql,这里我就不再铝耍嫌行矶嘞喙匦畔比灰部刹慰嘉也┛椭&MySql5.0安装详细图解&/xiaochonga10/blog/item/31ba0cfa74aaa318a8d311d3.html进行安装配置
记得在安装完后要连接测试一下mysql,测试方法如下:在windows2008的cmd状态下输入mysql -uroot -p
接着按屏幕提示输入当时安装mysql时设置的密码,如果出现提示mysql&说明安装正常,否则自己去检查原因吧。
配置到这里你如果安装dz或pw论坛是完全可以安装的,如果你安装不成功,告诉你一个找错误的方法,在安装论坛时一般会对你配置的环境做个检测,有哪个项目不符合论坛运行环境的要求会有清楚的提示。如果一直提示mysql出错建议你换个版本安装试试,我之前试了三个版本最后才从官方下载的mysql5.1.48成功的。
6.安装ZendOptimizer3.3.3,这个东东刚开始我也不了解它,后来参考了些资料知道安装它是可以极大的提高iis或apache执行php效率的,我在安装上这个东西后出的问题也最多,安装它时是非常简单的,一路默认就可以直到安装成功。不过在出现提示please choosethe root folder of your web server时,默认是进行不下去的,需要将默认的类似这样的%system%\inetpub的东西修改成随便一个你硬盘中真实存在的路径就行,我的是c:\inetpub.ZendOptimizer安装成功与否要看c:\windows下的php.ini,成功的话php.ini文件尾部会被加入以下信息[Zend]
zend_extension_manager.optimizer_ts=&C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0&
zend_extension_ts=&C:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll&
并且在浏览器中运行index.php测试页面时,会出现Zend Optimizer一个专栏信息内容。如果大家默认ZendOptimizer的安装是不需要再进行多余配置的,如果想让它工作的更出色自己可以参考官方英文pdf说明。这里我要特别强调一下我配置时出的问题,问题在于安装上它我再运行php测试页时提示我&FastCGI进程意外退出出错信息&,我根据网上的指导在cmd下运行php -v结果发现有许多dll模块没被加载,所以就去d:\php5下的php.ini配置文件看,因为在安装 ZendOptimizer之前都是正常的,怎么安装后会提示不能加载dll模块,我检查d:\php5下的php.ini后一切正常,于是就卸载了再安装又是用优化大理清理垃圾和注册表又是再检查修改d:\php5下的php.ini,最后我才发现,c:\windows下的php.ini文件,被ZendOptimizer不知道什么时候给修改了,而且修改关键的几个地方像extension_dir这么关键的地方竟然被禁用了,于是又将c:\windows下的php.ini文件从头到脚重新检查配置了一下,再次去浏览器中运行测试页,又提示我这个错误&Warning: phpinfo() has been disabled for security reasons in D:\phptest\index.php on line 2&
原来是php出于安全考虑禁了phpinfo()函数,而我的php测试页内容就是&?phpinfo()?&,于是又去修改了
d:\php5和c:\windows中的php.ini中的disable_functions =,将它的=后边内容中的phpinfo删除后才算是最终解决了问题。
总结:回顾这一路下来的配置真是太考验人了,一个小地方不注意都不行,
1.主要有两个错误提示:
&FastCGI进程意外退出出错信息&
&Warning: phpinfo() has been disabled for security reasons in&,
请注意以上细节及解决方法,希望各位能顺利配置成功。
2.另外在每次修改php.ini后都要将IIS重新启用一次,这样才会使修改后的配置生效。
3.php版本暂时不要选择5.3.2因为如果你安装ZendOptimizer3.3.3还不支持php5.3.2。
4.环境配置不成功要在cmd下用php -v命令测试根据错误提示来解决很有用的。
01-2801-1001-0611-1508-1907-0406-1505-1905-1905-09
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载chicxp 的BLOG
用户名:chicxp
文章数:345
评论数:91
访问量:176902
注册日期:
阅读量:5863
阅读量:12276
阅读量:311136
阅读量:1026480
51CTO推荐博文
最后帮朋友做了一个网站, 不过空间的限制,只能用好多年前的ASP技术了。另本人系统是英文版Windows 7 ,所以截图会有英文, 不过本人会用中文完整讲解。1. 进入Windows 7的 控制面板->程序和功能->选择左上角的 打开或关闭Windows功能 如下图,把Internet information Service 选中,最重要的要把ASP选中。2、安装完成后,再次进入 控制面板->管理工具;双击 Internet信息服务(IIS)管理器 选项,进入IIS设置。点应用程序池,右边的 “设定默认属性”, 把弹出来的窗口中,启用32位程序,(注:如果电脑是32位的Win7,这一步就可以省略。再点 “站点”----默认站点----- ASP &把"启用父路径" 设成启用。如果是NTFS格式的磁盘,按下图把 IIS_USRS 加上读写权限。因为有时要读写 Access数据库或者文件。最后在 IE中测试 &http://127.0.0.1 ,会出现如下图片,证明开启成功。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)在Window IIS中安装运行node.js应用―你疯了吗
[原文发表地址]Installing and Running node.js applications within IIS on Windows - Are you mad?
[原文发表时间] 08:03
我们团队中的一些成员正在努力优化node.js在Windows上的运行效果。你可能会问一些问题。
首先,node.js是什么?
如果你不熟悉node.js,我要说这是一个炙手可热的新型web编程工具包。要是你没听说过会让你觉得自己很过时,就好像几年前Rail上的Ruby那样风靡。同行们把它称之为&Node&,简单来说是服务器端的JavaScript。如果你在客户端做一系列的JavaScript,而且时常一做就是一整天,那为什么不在服务器端试试呢。学起来应该很简单,我猜想是这样的。
如果你是一个ASP.NET编程员,你可以把node.js看成是用JavaScript写成的IhttpHandler。其实它的等级更低, 它连HttpHandler都不是,这里我只是想做一个类比。Brett McLaughlin写的一篇有关Node.js 更多细节以及概述的文章很不错。文章的副标题就是&Node不可能解决所有的问题,但的确可以解决一些重要的问题&,这个描述很贴切。
更新1:为什么node.js那么重要?
为什么我们需要node呢?node有许多有趣的部分。它使用的是非常快速的JavaScript引擎V8,更重要的是它的I/O是异步的,而且与传统同步代码形成鲜明对比的是它的事件驱动。
举例来说,ASP.NET中的HttpHandler要用几秒来&做些什么&(如获取文件,访问服务等)如下所示:
1: public class SimpleHandler : IHttpHandler
3: public void ProcessRequest(HttpContext context)
5: Thread.Sleep(2000); //Do something that takes a while
6: context.Response.Write("Hello from SimpleHandler");
9: public bool IsReusable { get { } }
这用来处理大部分情况还是很好的。不过,当我用测试工具同时加载1000个虚拟客户端打算测试它的极限时,我一秒钟连60个请求都获取不到。请求线程和工作线程同时进行时,大家都在排队。我把ASP.NET程序池的资源都消耗光了。如果工作线程结束后能及时回调(Call Back)那就太完美了。这就好像在等待技术支持一样,你只能被迫等待一个结果。他们要是能在他们准备好之后及时通知你这不是很好吗?
ASP.NET一直可以(看看MSDN上一篇发表于2003年关于Async Handlers的 文章)通过IHttpAsyncHandler做很多工作,但过程繁复一点而且几乎没什么人知道。有了.NET内建的Async CTP和Task库,你就能在IhttpAsyncHandler的顶部创建更好的抽象元素。Ayende对AbstractAsyncHandler有一个简单的实例(有很多类似的应用,比如在我们自己的工具里,MVC里,还有SignalR里(将来还会有更多)),让我们可以用来做类似的工作。这个实例还可以做一些更复杂细小的事情,比如文件IO,数据库 IO或者调用web服务。这是一个再简单不过的例子,可能并没有完全同步Node,但基本还是可以的。而且,看上去还是不错的。
1: public class SimpleAsyncAyendeHandler : AbstractAsyncHandler
3: protected override async Task ProcessRequestAsync(HttpContext context)
5: await TaskEx.Delay(2000);
6: await context.Response.Output.WriteAsync("Hello from Ayende and Scott");
同样是同时处理1000个虚拟客户,我在一秒内收到了500个请求,每个请求大约需要2秒来完成,这样的效率是合理并可以接受的。如果我们不是在干等,而是在做I/O或者其他更复杂的长时间运行工作的话,效果会比第一个例子更好。有了上述两行代码的支持,以及Ayende的简单实例,在.NET中做异步代码和并行比以前方便许多。在Node中这样的东西既简单又优雅,的确是很吸引人的。
Node最擅长异步了,通过JavaScript进行回调来实现完整的异步。你已经会在客户端使用JavaScript调用和事件了,那为什么不融会贯通到服务器端呢?这里提供&Marc Fasel针对这个话题的一篇博文实例。
首先, 通过Marc实现一些同步文件工作:
1: var fs = require("fs"), filenames, i, processId;
3: filenames = fs.readdirSync(".");
4: for (i = 0; i & filenames. i++) {
5: console.log(filenames[i]);
7: console.log("Ready.");
9: processId = process.getuid();
还有用异步来完成同样的工作,看上去很熟悉吧!
1: var fs = require("fs"), processId;
3: fs.readdir(".", function (err, filenames) {
5: for (i = 0; i & filenames. i++) {
6: console.log(filenames[i]);
8: console.log("Ready.");
11: processId = process.getuid();
I/O开始后,回调函数则由I/O的执行的结果决定。很强大吧。
为什么要在Windows和IIS上运行node.js?
Tomasz Janczuk最近在做iisnode项目。你可能会认为Windows和node完全不搭边。&这是不对的!他们在想什么?IIS都是.NET相关的东西?&那么你可以回忆一下几年前我在CodeMash上说的,有关IIS7和PHP,当时我也做了个截屏展示了IIS7, PHP和 FastCGI是怎么在一秒内聚齐上千的请求的。IIS的工作人员,Windows的工作人员,Azure的工作人员都希望Windows上所有东西都会运行顺畅。记住,我们是卖Windows的,它可以做越多的事对我们来说是好事。
干嘛还要让node在IIS上运行呢?
Tomasz的回答是我见过最棒的:
使用iisnode模块在IIS中托管node.js应用程序来取代自托管node.exe进程的优势在于:
&&进程管理。&Iisnode模式注重node.exe进程的长期管理,能够更简洁地改善整体可靠性。你无需实现用来运行,停止或者显示进程的基础工具。
&&多核服务器上的可扩展性。由于node.exe是一个单线进程,只可适用于单核CPU。而iisnode模块允许每个应用中创建多个node.exe进程,并根据HTTP流量调整使其负载平衡。,从而充分可以发挥服务器CPU性能,无需额外的基础代码。
&&自动更新。Iisnode模块保证了node.js应用随时保持更新(比如,在脚本文件变更时就会更新),node.exe进程得到循环。旧版本的应用能正确地完成正在进行中的请求执行,而所有的新请求都会分派到应用的最新版本。
&&通过HTTP访问日志。Iisnode模块提供通过HTTP访问node.exe进程中的输出。(比如,由console.log调用生成的输出)。这个功能是帮你调试在远程服务器上的node.js应用程序问题的关键。
&&与其他内容类型相连。&Iisnode模块与IIS相融,让一个单一的web页面能够涵盖许多内容类型。比如,一个单一的页面可以包含一个node.js应用,统计HTML,JavaScript文件,PHP应用和ASP.NET应用。这就让用户能随意挑选最适合的工具,并未已有应用完成迁移。
&&只需改变少部分node.js应用代码。&Iisnode模块支持最少的改动来托管现有HTTP node.js应用。你只需通过process.env.PORT环境变量把HTTP服务器列出的地址变为iisnode提供的地址就可以了。
融合管理体验。&issnode模块完全集成IIS配置系统,并使用相同的工具和机制,类似于IIS其它组件的配置和维护。
除了有利于iisnode模块中特定的点,在IIS中托管node.js应用还能让开发者从一系列IIS功能中获益匪浅,包括:
端口共享(通过80多个端口托管多个HTTP应用)
安全(HTTPS,身份验证和授权)
都非常有说服力,但在我看来,最有趣的要数一体化了。Iisnode模块是一个合理的IIS模块,就像ASP.NET和PHP一样。这就意味着你可以在一个单一的网站上看到多种内容。正如上述:
比如,一个单一的页站可以包含一个node.js应用,统计HTML,JavaScript文件,PHP应用和ASP.NET应用。
一些同仁们一听到我说,你可以在同一个AppPool中使用ASP.NET WebForms和ASP.NET MVC就好像&混血儿&一样,就会疯狂起来。亲爱的读者,大家都没有意识到IIS的强大和灵活性。当你插入像node一样的新东西,但还是按旧方法来操作时,它仍然会延续所有包含的优点。
好吧,你说服我了,那我要怎么在Windows上运行node.js呢?
我假定你运行的是IIS7.
& 去&下载node.exe,放在 c:\node
& 去&下载iisnode.
& 解压iisnode压缩包,解压到\inetpub\iisnode
&&(只是我的建议,未必是最好的位置)
& 以管理员身份在命令行中运行install.bat。
Install.bat将会:
& 从你安装的IIS中取消注册已有的&iisnode&全局模块,如果你已经注册过的话。
& 在你的安装的IIS中注册iisnode为本地模块
& 安装&iisnode&模块配置文件
& 从applicationHost.config中的system.webServer组移除现有&iisnode&部分
& 在applicationHost.config中的system.webServer组添加新的&iisnode&部分
& 如果有iisnode web应用,直接删除
& 为IIS添加新的iisnode站点
没有保证!要小心,你是在边缘行走。记住,你只是在偶然看到的博客上看到这篇文章。
警告:我搞不清楚正确的AppPool和文件系统权限,所以我直接给了我本地AppPool&SYSTEM&的权限。这很糟糕,都是我的错。我在iisnode GitHub上写下了问题,等他们有回复时我会想办法修复然后更新的。
我为node做了个新的AppPool,给了它SYSTEM的访问权限,然后将Node Site分配给这个新的AppPool。你的站点看上去就是这样的:
如果你在IIS7的这个页面上点击这个模块,你将会看到iisnode是本地模块:
现在,你可以点击http://localhost/node/helloworld/hello.js&然后得到回馈:
Hello, world! [helloworld sample]
内容很简单:
1: var http = require("http");
3: http.createServer(function (req, res) {
4: res.writeHead(200, {"Content-Type": "text/plain"});}

我要回帖

更多关于 大牛家的模式很难成功 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信