背景:一般php写的用户认证,都是允许任何用户注册,然后可以登录;该用户认证需手动在Apache服务器端添加,认证后才能访问目录文件内容;不适合注册,仅适用于小范围内网,如校园网
1. 修改虚拟主机配置文件/usr/local/apache2/conf/extra/httpd-vhosts.conf
<Directory /data/www/test> # 主页根目录下建立需认证目录
AllowOverride AuthConfig # 打开AllowOverride,或者选择ALL
AuthName "please input password" #描述,自定义
AuthType Basic # 用户认证类型,固定格式
AuthUserFile /data/.htpasswd # /data/.htpasswd 用于存放验证用户和密码
# apache对“.ht”开头的密码文件默认不允许外部读取
require valid-user # 出现在账号密码文件中的用户都能登录
</Directory>
说明:
以下4行也可单独写进文件.htpasswd中,条件:
1)文件放置于要认证的文件目录(如/data/www/test)下
2)需开启AllowOverride
3)文件名固定为.htaccess
AuthName "please input password"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
2. 创建密码文件和用户
说明:使用htpasswd命令创建用户,在第一次创建时加-c可创建文件,第二次无需再加-c,否则会覆盖掉原文件
命令 htpasswd -c -m /data/.htpasswd admin # 生成用户和密码于/data/.htpasswd文件中
命令 htpasswd -m /data/.htpasswd admin1
3. 测试
重启apache,浏览器输入 http://网站/test