2009年3月5日 星期四

IIS 與 Appache 共存

最近想在公司的 XP上跑 PHP, 最方便的方法是安裝 appserv, 但我的 XP 已經有 IIS 了, 實在不太想安裝 Appache, 所以如果能夠利用 IIS 跑 PHP 是再好不過了. 前幾天安裝 PHP5 後, IIS 設定好了, 但搞了老半天,還是失敗, 顯示錯誤訊息如下:
<h1>CGI Timeout</h1>

The specified CGI application exceeded the allowed time for processing. The server has deleted the process.


奇怪了, 安裝 PHP5 時不是指定 php5isapi.dll 嗎? 為什麼是顯示 CGI? 如果再找不到解決方法, 只好考慮 APPSERV 了, 但這樣就會遇到 IIS 跟 APACHE 於預設埠 PORT 80 衝突的問題. 今天在谷歌找到一個辦法, 但是簡體的, 繁體化後摘要如下:

原文見 : 白雲飄的 BLOG
1.查誰佔用了 PORT:80

  1)打開 DOS 命令提示字元視窗
    2) 輸入 netstat -abn ->d:/port80.txt
    3) 打開 port80.txt 檔, 找到佔用80埠的程式之 pid, 記下pid.
    4) 打開任務管理器, 點擊“查看”/選擇列


,勾選“PID(進程識別字)”,然後單擊“進程”標籤,找到80埠對應的pid,就可以看到是那個程式佔用的

了,更改這個程式的port,再重啟這個程式,使更改生效。再次啟動iis
 
不管是Apache還是IIS都無法使用已被佔用的埠。即每個埠只允許使用一次(一般指被一個服務程式所使用)。

如果系統內已安裝IIS並使用了80埠(Http默認埠),再安裝Apache,只要另選一個埠並不與其他應用衝突即可運行。例如可以將Apache監聽的埠改為81或其他任何一個未被使用的埠。

Apache修改監聽埠的方法為:
打開 httpd.conf
修改 Listen 80 Listen 81
A pache
可以同時監聽一個以上的埠實現多個Http服務
只要添一行 Listen 82 即可


同樣IIS也可以修改默認的埠以避開衝突
修改方法類似
打開 Administrative Tools -> Internet Services Manager
點選 Default Web Site(或其他自定義的Site -> 右擊選Properties
點選 Web Site -> Advanced...
修改TCP Port 為有效值即可 







沒有留言 :