我们根据discuz论坛来做Apache的用户认证 www.test.com/abc/
只有自己能看到,还想再网页上去展示,这个时候我们需要做一个用户认证,也就是说当你输入用户名和密码之后,你才能够访问。
假如我们现在创建一个abc目录
[[email protected] www]# mkdir abc
[[email protected] www]# cd abc
[[email protected] abc]# ls
[[email protected] abc]# cp /etc/passwd ./12.tx我们把这个文件拷贝过来叫做12.txt,是可以访问到文件的在WEB:192.168.140.100/abc/12.txt那我们不想让别人看到就要做一个用户认证,这点怎么才能做到呢,我们来更改一下配置文件:
[[email protected] 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
[[email protected] abc]# vim /etc/profile.d/path.sh
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache2/bin
[[email protected] abc]# source /etc/profile.d/path.sh
[[email protected] abc]# htpasswd -c /data/.htpasswd user1
New password:
Re-type new password:
Adding password for user user1
创建/data/.htpasswd 用户user1
[[email protected] abc]# cat /data/.htpasswd
user1:$apr1$HG2G3xkL$ia.Y0twLoXBs6LSVbaa901
user1后面是加密的密码
再创建一个新的用户后面不加-c,不然会覆盖掉的
[[email protected] abc]# htpasswd /data/.htpasswd user2
New password:
[[email protected] abc]# cat /data/.htpasswd
user1:$apr1$HG2G3xkL$ia.Y0twLoXBs6LSVbaa901
user2:$apr1$6AUov0al$D.SAMep6KYgwP62bZC5ya1
[[email protected] abc]# apachectl -t查看配置OK吗
Syntax OK
[[email protected]nux abc]# apachectl restart没有问题restart一下,重新加载不用重启,graceful只是重新调用了配置文件
我们再去web刷新www.aaa.com/abc/12.txt