Apache2.4(二) 虚拟web服务器配置

转自:http://blog.csdn.net/qq_33756795/article/details/52912845

上一篇文章中我们进行了Apache2.4的下载、配置和卸载的操作,本篇文章来进行Apache2.4虚拟服务器的设置操作。

写在前面吐槽的一点,我为了用Apache2.4设置虚拟web服务器,前前后后折腾了一个星期,总是见到403 forbidden的问题。结果最后发现是2.2和2.4在权限设置语法上的不一样造成的,虽然也有我没有认真阅读Apache文档的原因,但依旧觉得甚是坑爹Apache2.4(二) 虚拟web服务器配置Apache2.4(二) 虚拟web服务器配置

好了,吐槽完毕,下面来开始Apache虚拟web服务器的配置。(本文的所有文件目录依旧是按照我个人的设置来进行,具体可以根据个人喜好进行设置)

一、httpd.conf的配置。

1.1 进入E:\Myanv\apache\Apache24\conf用记事本打开httpd.conf文件。

1.1.2设置访问权限:为了防止之后的测试出现403 forbidden问题,这里我先提前进行设置。

找到这里:

[plain] view plain copy
  1. <Directory />  
  2.     AllowOverride none  
  3.     Require all denied  
  4. </Directory>  

注意:这里是Apache2.4的权限设置语句,如果是2.2的话沿用的是之前的老语句,如下图:

[plain] view plain copy
  1. <del><Directory />  
  2.     Options FollowSymLinks  
  3.     AllowOverride None  
  4.     Order deny,allow  
  5.     Deny from all  
  6. </Directory></del>  

(Apache2.2版本的权限设置语句)

两者区别的文档:http://httpd.apache.org/docs/2.4/upgrading.html#access

这里的  Require all denied的意思是所有的请求都被拒绝,这也造成后面卡了我很久的403 forbidden问题。

所以我们先将这里的Require all denied修改为:

[plain] view plain copy
  1. <Directory />  
  2.    AllowOverride none  
  3.    Require all granted   
  4. </Directory>  
这句的大概意思是Require all granted所有请求都被允许。这里就是和Apache2.2版本权限语法不一样的地方。

1.1.3 注销掉DocumentRoot命令。

继续向下找到

[plain] view plain copy
  1. DocumentRoot "${SRVROOT}/htdocs"  
这个命令行的意思是Apache默认的访问页面路径地址,所以我们前面加#将其注销掉。

Apache2.4(二) 虚拟web服务器配置

[plain] view plain copy
  1. #DocumentRoot "${SRVROOT}/htdocs"  

1.1.4 找到Virtual hosts启用httpd-vhosts.conf文件

PS:比较快捷的方法是使用Ctrl+f进行查找

找到Virtual hosts命令

[plain] view plain copy
  1. # Virtual hosts  
  2. #Include conf/extra/httpd-vhosts.conf  
并将其改为

[plain] view plain copy
  1. # Virtual hosts  
  2. Include conf/extra/httpd-vhosts.conf  
其实也就是将下面的Include conf/extra/httpd-vhosts.conf语句前的#去掉。

至此我们的httpd.conf文件这部分就设置完毕了。

二、httpd-vhosts.conf设置

找到httpd-vhosts.conf这个文件,具体路径为E:\Myanv\apache\Apache24\conf\extra下,然后将其用记事本打开。如图找到最下面的语句:

[plain] view plain copy
  1. #<VirtualHost *:80>  
  2. #    ServerAdmin [email protected]  
  3. #    DocumentRoot "${SRVROOT}/docs/dummy-host.example.com"  
  4. #    ServerName dummy-host.example.com  
  5. #    ServerAlias www.dummy-host.example.com  
  6. #    ErrorLog "logs/dummy-host.example.com-error.log"  
  7. #    CustomLog "logs/dummy-host.example.com-access.log" common  
  8. #</VirtualHost>  

这里可以直接在该语句上进行修改,我的修改如下:

ps:需要提前说明的是,我在进行虚拟web服务器设置前已经在本地D盘下建立了一个名为myblog的文件夹,并在该文件夹内部建立了index.html文件。

[plain] view plain copy
  1. <VirtualHost 127.0.0.1:80>  
  2.     ServerAdmin [email protected]  
  3.     DocumentRoot "d:/myblog"  
  4.      DirectoryIndex  index.html index.php  
  5.     ServerName www.lyangye.com  
  6.     ErrorLog "logs/dummy-host2.example.com-error.log"  
  7.     CustomLog "logs/dummy-host2.example.com-access.log" common  
  8. </VirtualHost>  
这里需要说明的是,上图的语句具体本人也不是特别的清楚,只能根据自己的理解来解释,如果有错误还希望大家能够指正出来。

<VirtualHost 127.0.0.1:80>这句的意思是通过127.0.01:80来访问我的虚拟web服务器;

DocumentRoot "d:/myblog"这句的意思是访问路径

DirectoryIndex  index.html index.php 这句的意思是访问的欢迎页面,后面的类似index.html、index.php这些可以自己根据需要进行修改。

ServerName www.lyangye.com 这里设置你的虚拟web服务器的域名,后面的地址可以随意编写。

ErrorLog "logs/dummy-host2.example.com-error.log" 和 CustomLog "logs/dummy-host2.example.com-access.log" common这两个页面是错误日志和用户日志的地址,我这里没有进行改变。

至此httpd-vhosts.conf页面设置完毕。

三、hosts设置

下面让我们来进行hosts的设置,所谓hosts我查了下wiki,上面对其定义如下:

hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名称映射到相应的IP地址。hosts文件通常用于补充或替换网络中DNS的功能。和DNS不同的是,计算机的用户可以直接对hosts文件进行控制。

hosts的具体位置在C:\Windows\System32\drivers\etc里面,将其用记事本打开,并添加如下语句:

Apache2.4(二) 虚拟web服务器配置

[plain] view plain copy
  1. <div style="text-align: left;"><span style="font-size: 15.008px;">127.0.0.1     localhost</span></div><div style="text-align: left;"><span style="font-size: 15.008px;">127.0.0.1   www.lyangye.com</span></div>  

这个大概的意思通过127.0.0.1这个IP来访问本地区域的www.lyangye.com页面。

保存之后对原来的hosts文件进行替换,至此我们的hosts文件也设置完毕了。

四、检查虚拟web服务器是否成功

首先我们先重启下Apache的服务器,如果没有问题,应该会出现如下显示。

Apache2.4(二) 虚拟web服务器配置

然后我们打开浏览器输入http://www.lyangye.com/index.html

如果配置成功就会出现该页面了。

Apache2.4(二) 虚拟web服务器配置

恭喜你成功了!