前言: Apache 服务器通常使用基本认证,利用一些认证参数,可实现对指定目录的认证控制。 Apache 用户认证所需要的用户名和密码有两种不同的存贮方式:一种是文本文件;另一种是 MSQL Oracle MySQL 等数据库。 用户访问指定目录的网页文件时必须输入认证用户名和口令,认证成功后才能进行访问。其实网站管理者管理网站的后台去修改东西时都需要口令的,不然普通用户就可以轻易进入后台去修改网站内容。此次实验只采用文本文件来储存用户名和密码。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.     在对 Apache 服务器进行配置之前,我们先来了解一下配置文件中有关用户认证的字段,这样子可以更清楚的认识配置文件中各字段所起到的作用。(建议:网上搜一下有关这方面得资料)。

²  AuthName 认证域名称:指定用户认证域的名称。

²  AuthType Basic :配置用户认证的方式,一般只使用 Basic

²  AuthUserFile 文件名:指定认证用户文件名及其保存路径。

²  AuthGroupFile 文件名:指定认证组群文件名及其保存路径。

   使用认证参数后还需要使用 Require 参数进行授权,指定哪些认证用户或认证组群有权访问指定的目录, Require 参数有以下三种格式:

Ø  Require 用户名列表:授权给指定用户。

Ø  Require 组群名列表:授权给指定组群。

Ø  Require valid User :授权给认证用户文件中所有的用户。

   Apache 服务器针对目录进行访问控制和认证时,并可选择使用以下方式来实现:

² 直接编辑 httpd.conf 文件,直接设置指定目录的访问控制和认证相关参数。

²  在指定目录创建 .htaccess 文件,访问控制和认证相关参数都保存在 .htaccess 文件中。

   这两种方法各有优劣,使用 .htaccess 文件可以在不重启服务器的情况下修改服务器的配置,但是由于 Apache 服务器需要去寻找 .htaccess 文件,会降低服务器的运行性能。

   Httpd.conf 文件中 AllowOverride 参数的参数可决定 .htaccess 文件是否起效,以及 .htaccess 文件中可使用的配置参数。 AllowOverride 参数的主要参数有 All None Allow 就是启用 .htaccess 文件,并且可使用所以的参数, None 是不启用 .htaccess 文件。

2.     我们要在 Apache 的默认主页根目录下新建一个名为 secret 的目录,为了测试配置效果,需要在次目录下新建一个 Index.html 文件,截图如下所示:
  

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

3.     编辑 httpd.conf 文件内容,设置虚拟目录 /var/www/html/secret 。其实是在 httpd.conf 配置文件中添加下面的内容,截图如下所示:

 
    

目录中 AllowOverride 参数设置为 All ,则所有的访问控制参数都单独保存在 .htaccess 文件中,对于 AllowOverride 参数设置为 All 的解释在配置文件中有很清楚的解释,截图如下:
 

4.     /var/www/html/secret 目录下新建访问控制文件 .htaccess, 并且在 .htaccess 文件中添加相应的内容,截图如下:

 
    

相应的字段解释看前面的说明就很清楚了。

5.     创建访问网站的认证用户,用户名为 yangzexin, 利用 Apache 附带的程序 htpasswd ,生成包含用户名和密码的文本文件: /var/www/html/secret/userpass.txt 。使用的命令是: htpasswd –c /var/www/html/secret/userpass.txt 用户名,如果想要向 userpass.txt 文件中再添加其他用户的话,那么就不能在使用“ htpasswd –c /var/www/html/secret/userpass.txt 用户名”这条命令了,这样子的话会把原先创建的用户给覆盖掉的,所以如果想向该文件中再添加用户的话,那么就要使用这么一条类似的命令了:“ htpasswd –b //var/www/html/secret/userpass.txt 用户名    密码”如下图所示:

     

6.     查看一下 /var/www/html/secret/ 目录下是否自动创建了 userpass.txt 文件,同时查看里面的内容,截图如下:
 
  

7.     输入命令“ service httpd start ”启动 Apache 服务器

8.     测试用户认证效果,在 windows 计算机下启动 IE 浏览器,在地址栏输入 http://192.168.10.100/secret, 截图如下所示,

   
   

9. 如果是非法登录的用户的话,那么就会出现以下这么一个界面: