Linux-LAMP- Apache用戶認證
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那個虛擬主機編輯成如下內容
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
<Directory /data/wwwroot/www.123.com> //指定認證的目錄,針對那個目錄去做用戶認證
AuthName "123.com user auth" //自定義認證的名字,作用不大
AuthType Basic //認證的類型,一般為Basic,其他類型沒用過
AuthUserFile /data/.htpasswd //指定密碼文件所在位置
require valid-user //指定需要認證的用戶為全部可用用戶,用戶名密碼文件裏面,所定義的用戶
</VirtualHost>
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming #生成用戶名密碼。-c創建,-m,md5加密,指定密碼文件所在位置,
當第二次創建時,不需要-c,因為第一次已經創建了
重新加載配置-t , graceful
綁定hosts,瀏覽器測試
curl -x127.0.0.1:80 www.123.com //狀態碼為401,401訪問需要做用戶驗證
註釋: -u用戶名:密碼
curl -x127.0.0.1:80 -uaming:passwd www.123.com //狀態碼為200
還可以針對單個文件進行認證
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
<FilesMatch admin.php> #當訪問的文件,訪問admin.php時,才需要進行下面的操作
AllowOverride AuthConfig
AuthName "123.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
</VirtualHost>
Linux-LAMP- Apache用戶認證