我在
Windows Server 2k3上运行IIS6,目前已将
PHP安装为ISAPI模块.我们即将把我们的环境升级到PHP 5.3.0,这让我想知道我是否应该坚持使用ISAPI模块,或者是否有理由认为CGI更适合.
我们的组织有一个Web服务器,不必担心与共享主机相关的安全性;我们有几个网站,但它们都属于我们.
使用一种方法比另一种方法有优势吗?一个人更安全吗?这只是一个偏好问题吗?
编辑:PHP 5.3.0删除了对ISAPI的支持,因此您需要通过FastCGI安装它.从PHP Migration Guide:
Support for the ISAPI module has been dropped. Use the improved FastCGI SAPI module instead.
适用于Windows的非线程安全PHP CGI二进制文件应该为您提供最大的稳定性,兼容性和性能:
> PHP最初是为多进程环境设计和优化的
>大多数扩展都是在记住的情况下创建的
>您在多线程环境中看不到“等待”
但是,当CGI二进制文件用于多线程环境(如IIS)时,性能和稳定性很容易受到影响.因此,大多数人已经开始使用相对较新的FastCGI扩展,该扩展可用于IIS 5.1 / IIS 6.0作为下载并与IIS7捆绑在一起.
This guide解释了如何使用Microsoft的FastCGI扩展安装和配置PHP CGI.
第二种选择是使用PHP ISAPI,但要确保(i)使用线程安全版本(ii)使用稳定且经过测试的扩展 – 否则PHP ISAPI可能会崩溃并删除IIS.一个侧面说明,PHP中的踏板安全就像一个始终参与的手刹;有人甚至说这是一个神话.
更新:PHP ISAPI不再出厂,因此有关ISAPI与CGI的问题不再是问题.建议使用FastCGI.
> FastCGI支持内置于现代版本的IIS中,您只需启用它即可.> PHP安装程序提供了使用FastCGI安装PHP的选项.>对于想要执行ZIP安装的人,可以使用“PHP Manager for IIS”来配置IIS的PHP安装.