apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。大家只要跟着我一步步做下来就应该能轻松实现用户验证。
前期准备,必须已经安装apache
第1步:
我们在/var/www(apache的主页根目录)下建立一个test目录
mkdir /var/www/test
第2步
然后我们编辑httpd.conf
添加
Alias /test"/var/www/test"
<Directory "/var/www/test">
Options Indexes MultiViews
AllowOverride AuthConfig #表示进行身份验证
Order allow,deny
Allow from all
</Directory>
#AllowOverride AuthConfig 表示进行身份验证 这是关键的设置
第3步
在/var/www/test创建.htaccess文件
vi /var/www/test/.htaccess
AuthName "frank share web"
AuthType Basic
AuthUserFile /var/www/test/.htpasswd
require valid-user
#AuthName 描述,随便写
#AuthUserFile /var/www/test/.htpasswd
#require valid-user 或者 require user frank 限制是所有合法用户还是指定用户
#密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。
第4步
就是创建apache的验证用户
htpasswd -c /var/www/test/.thpasswd frank
#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数
如果你们想修改密码,可以如下
htpasswd -m .htpasswd frank
第5步:
ok,重启apache服务,然后访问 http://你的网站地址/test 如果顺利的话,应该能看到一个用户验证的弹出窗口,只要填入第4步创建的用户名和密码就行
后话,为了服务器的性能,一般不推荐使用AllowOverride AuthConfig或者AllowOverride ALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求。
【发表回复】【查看CU论坛原帖】【关闭】
gig2600 回复于:2003-11-19 14:07:26
AuthUserFile /var/www/test/.htpasswd
密码文件不应该放在含web文档的目录中,虽然文件是以 . 开始,但这么做仍然不是推荐的做法。
zhangweibo 回复于:2003-11-19 14:19:14
[quote:2cb43f85c2="gig2600"]AuthUserFile /var/www/test/.htpasswd
密码文件不应该放在含web文档的目录中,虽然文件是以 . 开始,但这么做仍然不是推荐的做法。[/quote:2cb43f85c2]
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
这是apache的默认设置
以.ht开头还是比较安全的,http.conf文件对以.ht开头的有专门的安全限制,如果放到另外地方,假如不在www的访问范围,那就apache对他的限制就没什么用,当然放在其他地方也是可取的,看大家觉得哪个安全吧!
HonestQiao 回复于:2003-11-20 08:56:28
以什么开头都是可以设置的
wtm_mac 回复于:2003-11-20 14:59:28
如果是虚主机上想要保护自己目录的权限该怎么做?
我在www.51.net上的试了,没有成功,请指教...
zhangweibo 回复于:2003-11-20 16:16:26
[quote:19a53899a9="wtm_mac"]如果是虚主机上想要保护自己目录的权限该怎么做?
我在www.51.net上的试了,没有成功,请指教...[/quote:19a53899a9]
针对你的虚拟主机设置呀,没有区别,只是写在虚拟主机段里
wtm_mac 回复于:2003-11-20 16:25:48
我的问题好像是找不到密码文件的路径,用的相对路径,不好使
superasp 回复于:2003-11-21 15:24:07
我在测试的时候,发现:
这个test目录的属主需要是启动 httpd 服务的用户,不然不能成功。
zhangweibo 回复于:2003-11-21 15:30:45
那是当然,是以http的默认用户的名义去访问这个文件,你只要设置相应的权限就行