PHP5.2以上版本及其IIS與Apache2.2的共存問題

技術小美發表於2017-11-01

    目的:在 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.5php5apache2_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_MACHINESOFTWAREPHP]

    “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,如需轉載請自行聯絡原作者


相關文章