爱运维网 发表于 2016-3-24 08:47:59

apache用户认证

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

假如1.txt这个文件很重要,我们要在网页上展示,只允许自己查看,我们就来做一个用户认证。
编辑虚拟主机文件:
# 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

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

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

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

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

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

输入用户名:user1
密码:123456
就可以访问了。

页: [1]
查看完整版本: apache用户认证