win2003的服务器已经有IIS,可以正常运行asp网站,为了更好的适应php网站,以及使用apache优秀的重写功能,打算在服务器上再安装apache和php。然而,由于IIS和apache都是服务器软件,服务器默认情况下以80端口作为网站入口,所以必须要解决好IIS和apache的共存问题。
网上有很多相关的教程,有些比较复杂,分了各种情况,本文要解决的是:现有IIS,安装apache,修改IIS上网站的访问端口,让两者共存,用apache代理访问IIS,实现使用apache运行php网站,IIS运行asp网站,域名不加端口号也可以正常访问。
步骤:
1、安装apache、php、mysql等软件;
2、启动apache时会报错,因为和IIS端口冲突了,先不用管apache(停止,不启动);
3、进入IIS服务器管理平台,在各个网站的属性中修改端口号,我修改的是8080端口;修改后原域名末加:8080能再访问网站;
4、全部端口修改好之后可以启动apache,如果不能启动,可以尝试重新启动IIS服务,在启动apache,一般这时能启动了;
5、接下来对apache进行配置:
在apache安装目录中修改/conf/httpd.conf,在靠近前面的位置打开
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
这几条
在文档最后部分加上
<VirtualHost?*:80>
ServerName www.utubon.com
ProxyPass / http://www.utubon.com:8080/
ProxyPassReverse /?http://www.utubon.com:8080/
</VirtualHost>
也可以打开http-vhost在http-vhost.conf中添加这一段代码
注意:proxypass后面有些教程说使用http://localhost:8080/,我的想法是,这个地址可能并不能访问到原来的网站,而www.utubon.com:8080一定是可以访问到的。
最后一步:打开allowoveride deny等权限,在httpd.conf中修改
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
只要找到这样的类似的代码,修改为AllowOveride All + Allow from all + deny from none等,当然,这要根据自己的不同的需求来修。这一步的主要目的是打开其他域名的可访问权限,因为不打开访问权限,其他域名可能不能访问。
根据本文的方法基本上能解决该问题,如有疑问,可在文章后面留言交流讨论。