AppServ2.5.9本机配置虚拟主机以及端口设置

来源:互联网 发布:淘宝专业刷信誉平台app 编辑:程序博客网 时间:2024/06/07 00:10

为了测试dedecms和phpcms这两种cms,所以在本机分别架设两个虚拟主机。    

1: 安装好AppServ2.5.9软件,官网是:http://www.appservnetwork.com/ ,2.59下载地址是:http://nchc.dl.sourceforge.net/sourceforge/appserv/appserv-win32-2.5.9.exe 是英文软件,但是安装时可以选择gbk-gb2312的编码。 
2: 修改本机的hosts文件,如下:  
示例:
  127.0.0.1  localhost
127.0.0.1  www.dede.com
127.0.0.1  www.phpcms.com
  

3: 打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。  
  #LoadModule vhost_alias_module modules/mod_vhost_alias.so   
去掉#意思是启用apache的虚拟主机功能。  
  #Include conf/extra/httpd-vhosts.conf  
去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置。

4: 打开extra目录内的httpd-vhosts.conf文件,什么都不管,直接在文件底部加入自己要加的虚拟主机的信息。如下面所示。   
分别是给出一个管理员邮箱、指出此网站的根目录、域名、和错误日志存放位置。注意目录间隔最好用/而不是/ 。    

<VirtualHost *:80>
         ServerAdmin jsw7001@hotmail.com
         DocumentRoot E:/AppServ259/www/dede
         ServerName www.dede.com
         ErrorLog E:/AppServ259/www/dede/error.log
         CustomLog logs/dummy-host2.appservnetwork.com-access_log common
</VirtualHost>
<VirtualHost *:80>
         ServerAdmin
jsw7001@hotmail.com
         DocumentRoot E:/AppServ259/www/phpcms
         ServerName www.phpcms.com
         ErrorLog E:/AppServ259/www/dede/error.log
         CustomLog logs/dummy-host2.appservnetwork.com-access_log common
</VirtualHost> 
       

  *以上路径中的斜线左斜右斜都可以。    

5: 将appserv的apache服务重启,就可以了,可以在各网站的根目录下放一个index.html文件,如果能看到,说明就对了。  

  apache的监听ip和监听端口设置 
在apache中,默认是只监听本机所有ip的80端口的。打开httpd.conf文件的60-70行之间(不同版本可能不太一样),有一行Listen 80的语句,就是这一句定义了apache的端口,默认没有指定ip,也就是默认监听所有ip的意思。 
我们可以根据自己电脑的ip改成: 
  Listen 80 
Listen 8080
 

那么,apache现在就同时监听80和8080端口两个端口了。 
我们也可以像下面的设法来指定监听某个固定ip和端口: 
  Listen 192.168.2.111:80 
Listen 192.168.2.111:8080
   

如果您的电脑启用了虚拟主机,电脑上运行着一个www.test.com网站,这时通过www.test.com可以正常访问网站,但是通过www.test.com:8080,看到的不是网站,而是网站的默认路径。  

这是因为,我们所改的httpd.conf文件是apache的全局设置,如果是想让虚拟主机也监听多端口,那些么需要去改虚拟主机的配置。
我们打开httpd-vhosts.conf文件,以下面为例: 
  <VirtualHost 192.168.2.111:80 192.168.2.111:8080>
  ServerAdmin webmaster@dummy-host2.appservnetwork.com 
DocumentRoot
D:/AppServ/www/test
  ServerName www.test.com
  ErrorLog logs/dummy-host2.appservnetwork.com-error_log
  CustomLog logs/dummy-host2.appservnetwork.com-access_log common
  </VirtualHost>

上面第一行,我们同时设了192.168.2.111:80 192.168.2.111:8080,这样虚拟主机就可以同时用上面ip的两个端口访问了。  

那么,是不是在虚拟主机配置了监听ip和端口,httpd.conf文件就不需要设监听端口了呢? 
我做了一下实验,如果httpd.conf中只监听80端口,虚拟主机却设了80和8080,那么虚拟主机同时用80和8080都是可以用的。但是如果httpd.conf一个端口都不监听的话,apache服务是不能启动的。也就是说,httpd.conf文件中必须设置一个apache的全局监听端口。  

接着尝试,如果把httpd.conf的默认监听88端口,然后让虚拟主机使用80和8080,那么使用www.test.com的80和8080将不能访问。通过www.test.com:88访问到的是apache的缺省路径。这说明,如果apache的默认端口不是80,那么虚拟主机中设置的与httpd.conf不同的端口将不会被监听。   

如果想让apache工作在非默认端口,但是虚拟机同时监听两个端口,那么怎么设置呢?其实这时,只需要让httpd.conf中监听跟虚拟主机中设置同样的端口就行了。 
例如httpd.conf如下: 
  Listen 88  
Listen 8080
  

虚拟主机配置如下: 
  <VirtualHost 192.168.2.111:88 192.168.2.111:8080>

原创粉丝点击