实现Apache打开软链接功能-禁止显示目录列表-用户认证
当一个目录下没有默认首页时,访问http://192.168.1.63禁止显示目录列表
显示目录的效果:
[root@Linux 1 ~]# cp -r/boot/grub2/ /var/www/html/bbs/
[root@Linux 1 ~]# ll /var/www/html/bbs/
总用量16
drwxr-xr-x. 2 root root 27 2月2 2018 grub
-rw-r--r--1 root root 26 11月19 10:22 index.html
[root@Linux 1 ~]# rm -rf /var/www/html/bbs/index.html
[root@Linux 1~]# vim /etc/httpd/conf/httpd.conf
Require all granted#取消注释
Require ip 192.168.1.63
Require not ip 192.168.1.103
[root@Linux 1 ~]# systemctl restart httpd
chown -R apache:apache /var/www/html/bbs/grub2/
当网站没有默认的首页的时候,直接访问显示网站更目录下的文件夹资源
取消网站目录下浏览文件夹资源
修改配置文件:
[root@Linux 1 ~# vim /etc/httpd/conf/httpd.conf# 修改红色标记内容
改:144 Options Indexes FollowSymLinks
为:144 #Options Indexes FollowSymLinks
[root@Linux 1 ~]# systemctl restart httpd
通过用户认证的方式,对网站下/usr/local/phpdata/目录进行保护
设置/usr/local/phpdata/目录,只能通过用户名密码方式访问。
[root@Linux 1 ~]# vim /etc/httpd/conf/httpd.conf
#在需要使用用户验证的目录的相关Directory段落添加以内容:
Alias /phpdata/ "/usr/local/phpdata /"
<Directory "/usr/local/phpdata /">
Options Indexes FollowSymLinks
AllowOverride None
#Require all granted#注释此行,并加入以下4行内容
authtype basic
authname "my web site"
authuserfile /etc/httpd/conf/passwd.secret
require valid-user
参数说明:
authtype basic
#authtype命令:指定认证类型为:basic。
authname "my web site "
#AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。
authuserfile /etc/httpd/conf/passwd.secret
#AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。
require命令
#指定哪些用户或组才能被授权访问。如:require user user1 user2(只有用户user1和user2可以访问)
require valid-user(在AuthUserFile指定的文件中任何用户都可以访问)
利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文
命令格式:htpasswd –cm 存放用户名和密码的文件名 用户名
[root@Linux 1 ~]# htpasswd -cm /etc/httpd/conf/passwd.secret tom
New password: 123456
Re-type new password: 123456
Adding password for user tom
注意:
#第一个生成用户名和密码,需要创建文件,因此需要加-c参数
#第二次创建用户,不能用-c,否则会把前面的用户覆盖了
[root@Linux 1 phpdata]# htpasswd -h #查看参数
-c:创建新文件(Create a new file.)
-m:强制对密码进行MD5加密(Force MD5 encryption of the password.)
[root@Linux 1 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob
New password: 123456
Re-type new password: 123456
Adding password for user bob
[root@Linux 1 conf]# cat /etc/httpd/conf/passwd.secret #查看密码文件内容
tom: WJicnaIz$ejqYMmcqukEMsAVEjLcKf.
bob: S8pXfxJh$tletPNMKd33WZXqdkSLFy0
测试:
[root@Linux 1~]# systemctl restart httpd
http://192.168.1.63/phpdata/