在运行有 Windows 操作系统的服务器上,有用 ASP/ASP.NET 写的程序需要 IIS 环境,又有PHP程序需要运行(比如装个Discuz!论坛),而你不是通过IIS加载筛选器的方法(比较麻烦)架设PHP,而是利用WAMP一键搭建,这时就会遇到端口的麻烦。

我建议用Apache的代理模块解决该问题。

具体做法:

将 Apache 设为使用80端口,IIS使用其它端口,比如8080,然后将 Apache 作为 IIS 的代理。

在Apache的配置文件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

然后对应IIS里的每个站点都建立一个虚拟主机,将该域名的所有访问转向该域名的8080端口。

#域名example.800l.com到IIS主站 ASP/ASP.Net
NameVirtualHost example.800l.com
<VirtualHost example.800l.com>
ServerName example.800l.com
ProxyPass / http://example.800l.com:8080/
ProxyPassReverse / http://example.800l.com:8080/
</VirtualHost>

这样,对外就可以只需要一个端口,即可同时使用Apache和IIS的功能了。