在windows 2003 Server 中同时安装Apache和IIS,两者只能正常启动一个,即Apache和IIS有冲突,原因在于IIS在默认的情况下会占用所有IP的80端口,当启动了IIS后,再启动Apache时,会出现一个错误提示框,提示内容为:"The requested operation has failed!" ,即“请求的操作已经失败”;若先启动Apache再启动IIS,系统提示“另一个程序正在使用此文件,进程无法访问”。
学L8网c2页07网(http://www.xwangye.com)
如何解决呢,请看本文的介绍。
学L8网c2页07网(http://www.xwangye.com)
方法一:网卡绑定多ip解决apache与iis共存(微软方法)
学L8网c2页07网(http://www.xwangye.com)
下面以两个IP分别设置两个环境为例说明,已知条件:58.17.31.228~绑定了www.xwangye.com域名,是一个asp的站点,需要IIS环境;218.87.96.160绑定了www.fz49.com域名,是一个PHP的站点,需要apache环境。
一、Apache改成监听一个IP的端口。
在httpd.cfg 文件里。有 #Listen 12.34.56.78:80
写成如:Listen 218.87.96.160:80
二、下载微软 Support Tools工具里的 httpcfg.exe 程序
下载地址:
httpcfg.rar
解压并复制到 c:\windows\system32 目录下。
学L8网c2页07网(http://www.xwangye.com)
三、IIS改成监听的指定IP (用httpcfg.exe程序来指定)
httpcfg.exe是用来指定IIS的只监听指定的IP及端口
添加绑定:httpcfg set iplisten -i 58.17.31.228
查看绑定:httpcfg query iplisten
删除绑定:httpcfg delete iplisten -i 58.17.31.228
在本例中运行: httpcfg set iplisten -i 58.17.31.228 即可使IIS只占用 58.17.31.228 IP地址 (若是要监听多个IP,分别指定几条就行了。)
学L8网c2页07网(http://www.xwangye.com)
四、重新启动服务器
查看两个WEB环境是否正常。用 netstat -an | find ":80" 命令就可以查看所有的80端口,最后测试两个IP的网站是否正常。
学L8网c2页07网(http://www.xwangye.com)
方法二:Apache代理IIS
学L8网c2页07网(http://www.xwangye.com)
在这种情况下,将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理。
在httpd.conf里面,取消下面四行的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
然后建立一个虚拟主机,将该域名的所有访问转向81端口。
ServerName ******.net
ProxyPass / http://localhost:81/
ProxyPassReverse / http://localhost:81/
这样,对外就可以只需要一个端口,即可同时使用apache和IIS的功能了。

当前 位置: 
