PHP5.2 以上版本及其 IIS 与 Apache2.2 的共存问题-阿里云开发者社区

开发者社区> 开发与运维> 正文

PHP5.2 以上版本及其 IIS 与 Apache2.2 的共存问题

简介:

    目的:在 Windows Server 2003 上同时运行 IIS6.0 和 Apache2.2,且都与 PHP 进行集成。

    IIS6.0 与 PHP4.0 集成,Apache2.2 与 PHP5.2.5 集成,可以共存,没有问题。

    但是,IIS6.0 与 PHP5.3.8 集成后,然后,再加上 Apache2.2 与 PHP5.2.5 集成,就不能共存。

    现象:Apache 的 httpd.conf 文件以下语句会导致 Apache 服务不能启动:
    LoadModule php5_module "E:\php-5.2.5\php5apache2_2.dll"

    原因可能是:

    在 IIS6.0 下安装 PHP5.3.8 时,是运行了 php-5.3.8-Win32-VC9-x86.msi 文件,选择 IIS CGI 方式。该可执行文件在运行时,向注册表写入了以下内容:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\PHP]
    "InstallDir"="D:\\php-5.3.8-Win32-VC9-x86-ts\\"
    "WebServerType"="iis4CGI"
    "Version"="5.3.8"

    同时还可能向 Windows 文件夹下拷贝了一些 dll 动态链接库文件,结果导致了与 PHP5.2.5 的 php5apache2_2.dll 文件冲突。
    (安装时,先安装了 Apache+PHP,没问题。再安装 IIS+PHP,也没问题。且 IIS 和 Apache 都正常工作。但是在机器重新启动时,Apache 服务就启动不起来了。)
    卸载 IIS 下的 PHP5.3.8 后,Apache 又能正常工作了。说明在与 PHP5.3.8 集成后,IIS 确实与 Apache 冲突了。

    也许在 PHP5.2.0 以后,IIS 与 Apache 就根本不能共存了。也许还有其他办法?

    我建议,如果没有心思深入捯饬这个问题,就不要花时间和精力再钻研这个问题,要么是 IIS+PHP,要么是 Apache+PHP。要测试的话,装一台虚拟机去做。

    作者:张庆(网眼) ,微博:http://t.qq.com/zhangking
    来自“网眼视界”:http://blog.why100000.com
    “十万个为什么”电脑学习网:http://www.why100000.com
     2012-8-23












本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/970630,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章