通過 Apache 實現用戶認證

建立 .htacces 檔案
基本(Basic) 驗證是目前最為廣泛使用的方法,以下例子會替 /var/www/html/dir_protect 加入密碼保護,請先在這目錄建立一個 .htaccess 的檔案,然後加入以下內容:

以上段落的意思為:

AuthName “Member Only” — 密碼保錄目錄名稱,這裡可自行修改。
AuthType Basic — 使用基本驗證方法。
AuthUserFile /var/www.html/dir_protect/.htpasswd — 儲存登入帳號的檔案。
— 限制所有 GET 及 POST 方法。
require valid-user — 合法使用者可以存取目錄。

建立 .htpasswd 檔案
下一步是建立 .htpasswd 檔案。因為 .htpasswd 檔案內每一行代表一組帳號,格式為:

username:password


但裡面的密碼是經過編碼的,所以不能直接編碼,需要使用 apache 內建的 htpasswd 來做,以下是建立方法:

如果發目錄內加入了 .htaccess 及 .htpasswd 兩個檔案後未能有密碼保護功能,便需要編輯 apache 的 httpd.conf 檔案,並加入以下內容:

備注: AllowOverride All 代表可以在 .htaccess 檔案使用任何指令。
編輯好 httpd.conf 後需要重新啟動 apache。

使用 PHP 建立 .htpasswd
以上是通過 apache 內建的 htpasswd 程式來做,而使用 php 同樣可以做到,但在執行時請注意,apache 對 /var/www.html/dir_protect/.htpasswd 要有寫入權限,方法如下:

以上程式會建立 admin 帳號,密碼是 passwd。


Leave a Reply