您的位置:首页 > 运维架构 > Apache

apache用户认证

2016-03-23 19:56 651 查看
比如在www.test.com/abc/下的文件,要在网页上展示,又只允许管理员才能够查看,
我们就可以去做一个用户认证,需要去输入用户名和密码,只有用户名和密码正确之后才能够去访问。
[root@No ~]# cd /data/www
[root@No www]# cd test/
[root@No test]# cp /etc/passwd ./1.txt
打开网页,输入www.test.com/test/1.txt是可以访问的。



假如1.txt这个文件很重要,我们要在网页上展示,只允许自己查看,我们就来做一个用户认证。
编辑虚拟主机文件:
[root@No test]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.aaa.com
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
<Directory /data/www/test>
AllowOverride AuthConfig
AuthName "zhanghaomima"
AuthType Basic
AuthUserFile /data/.htpasswd #密码文件
require valid-user
</Directory>
</VirtualHost>

:wq

[root@No test]# vim /etc/profile.d/path.sh
修改为:
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache2/bin
:wq
[root@No test]# source /etc/profile.d/path.sh

这样apache也可以快速启动,不用再输入过长的命令。

生成密码文件:
[root@No test]# htpasswd -c /data/.htpasswd user1 //user1为用户名
New password: //密码为123456
Re-type new password:
Adding password for user user1

如果在添加一个新的用户,就不能使用htpasswd -c /data/.htpasswd user2了。
要把-c去掉,否则会覆盖掉之前的文件。

[root@No test]# apachectl -t
Syntax OK
[root@No test]# apachectl graceful
//重新加载。不需要重启。
然后在网页上刷新之前的页面,会看到以下提示:
箭头所指的就是我们虚拟主机里面的AuthName "zhanghaomima"



输入用户名:user1
密码:123456
就可以访问了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux apache 用户认证