我们根据discuz论坛来做Apache的用户认证 www.test.com/abc/
只有自己能看到,还想再网页上去展示,这个时候我们需要做一个用户认证,也就是说当你输入用户名和密码之后,你才能够访问。
假如我们现在创建一个abc目录
[root@zhangmengjunlinux www]# mkdir abc
[root@zhangmengjunlinux www]# cd abc
[root@zhangmengjunlinux abc]# ls
[root@zhangmengjunlinux abc]# cp /etc/passwd ./12.tx我们把这个文件拷贝过来叫做12.txt,是可以访问到文件的在WEB:192.168.140.100/abc/12.txt那我们不想让别人看到就要做一个用户认证,这点怎么才能做到呢,我们来更改一下配置文件:
[root@zhangmengjunlinux abc]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
我们在虚拟主机配置文件里找到:
<VirtualHost *:80>
DocumentRoot "/data/www/"
ServerName www.test.com
ServerAlias www.aaa.com
# ErrorLog "logs/dummy-host2.example.com-error_log"
# CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
在</VirtualHost>上面加入这些:
<Directory /data/www/abc>
AllowOverride AuthConfig
AuthName "aaa"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
AuthUserFile /data/.htpasswd这是存放用户名和密码的地方,我们需要去创建它,具体创建的命令:
我们先来做一个PATH
[root@zhangmengjunlinux abc]# vim /etc/profile.d/path.sh
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache2/bin
[root@zhangmengjunlinux abc]# source /etc/profile.d/path.sh
[root@zhangmengjunlinux abc]# htpasswd -c /data/.htpasswd user1
New password:
Re-type new password:
Adding password for user user1
创建/data/.htpasswd 用户user1
[root@zhangmengjunlinux abc]# cat /data/.htpasswd
user1:$apr1$HG2G3xkL$ia.Y0twLoXBs6LSVbaa901
user1后面是加密的密码
再创建一个新的用户后面不加-c,不然会覆盖掉的
[root@zhangmengjunlinux abc]# htpasswd /data/.htpasswd user2
New password:
[root@zhangmengjunlinux abc]# cat /data/.htpasswd
user1:$apr1$HG2G3xkL$ia.Y0twLoXBs6LSVbaa901
user2:$apr1$6AUov0al$D.SAMep6KYgwP62bZC5ya1
[root@zhangmengjunlinux abc]# apachectl -t查看配置OK吗
Syntax OK
[root@zhangmengjunlinux abc]# apachectl restart没有问题restart一下,重新加载不用重启,graceful只是重新调用了配置文件
我们再去web刷新www.aaa.com/abc/12.txt