有时候,我们需要给一些特殊的访问设置一个用户认证机制,增加安全!apache用户认证的实质就是给用户访问增加一个密码认证的过程,在介绍apache认证之前先介绍一个创建密码的工具htpasswd!

#/usr/local/apache2/bin/htpasswd 
  参数:
       -c:新创建一个密码文件
       -D:删除一个用户
       -m: 采用MD5编码加密
       -d:采用CRYPT编码加密,这是预设的方式
       -p:采用明文格式的密码
       -s:采用SHA编码加密

首先打开对应的虚拟主机配置文件

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在对应的虚拟主机中添加如下配置

<DIrectory /data/www/abc>     //指定对那一个目录进行认证
        AllowOverride AuthConfig
        AuthName "abcd"      //设置使用认证的用户,该说明会出现在显示给用户的密码的提问的对话框中
        AuthType Basic     //加密方式,basic认证并不加密来自用户浏览器的地址
        AuthUserFile /data/.htpasswd   //下面要创建的密码文件
        require valid-user   //设置允许访问的用户
     </Directory>

创建进行验证的用户

#/usr/local/apache2/bin/htpasswd  -cm /data/.htpasswd user1

回车后输入设定密码即可,第一次创建用户要加上-c选项,第二次直接创建不用再加-c!使用htpasswd创建用户密码时,倘若当前所在目录不再/usr/local/apache2/bin下,则要写/usr/local/apache2/bin/htpasswd,也可以添加PATH变量,就不用那么麻烦了,直接htpasswd就可!

设置完虚拟主机后一定要重启apache服务:

/usr/local/apache2/bin/apachectl -t  //检测配置文件是否正确
/usr/local/apache2/bin/htpasswd  restart  //重启apache服务