Apache2添加密碼保護,在CentOS和Ubuntu下稍有不同,但原理是一樣的。認證所需的用戶名和密碼可以存儲在密碼文本中,也可以存儲在數據庫裏。這裏簡述一下密碼存放在文本中如何在CentOS中配置。
CentOS apache的配置文件是/etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
Options Indexes FollowSymLinks
Allowoverride None #默認是None,表示禁止用戶對目錄配置文件(.htaccess進行修改)重載
Order allow,deny
Allow from all #哪些用戶可以訪問,默認是所有
</Directory>
添加認證後看起來是這樣的:
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride authconfig
Order allow,deny
Allow from all
AuthName "Auth Access"
AuthType Basic
AuthUserFile /var/www/html/htpasswd.users #定義訪問控制文件
Require valid-user #僅允許合法用戶訪問
</Directory>
#不允許web訪問用戶查看.htpasswd和.htaccess文件
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
現在添加用戶認證
sudo htpasswd -c /var/www/html/htpasswd.users user1
注意,第一個用戶參數 -c,後面加的用戶不要用,否則會覆蓋掉前面的!
重啓服務
systemctl restart httpd
再訪問頁面,就需要輸入用戶名密碼認證了。