apache2.4.18開啓登錄訪問

項目需要必須提供用戶名及密碼才能訪問站點,所以google查詢了一下,參見做了如下配置:

<VirtualHost *:80>

    DocumentRoot "/data/wwwroot/111.com"

    ServerName 111.com

    ServerAlias www.example.com

    <Directory /data/wwwroot/111.com> //指定認證的目錄    

        AllowOverride AuthConfig //這個相當於打開認證的開關

        AuthName "111.com user auth" //自定義認證的名字,作用不大

        AuthType Basic //認證的類型,一般爲Basic,其他類型阿銘沒用過

        AuthUserFile /data/.htpasswd  //指定密碼文件所在位置

        require valid-user //指定需要認證的用戶爲全部可用用戶

    </Directory>

</VirtualHost>

結果:網站500錯誤了,apache報錯Unknown Authz provider: valid-user error,

又查了查,結果確認是因爲版本問題,我的apache是2.4的,以上配置估計是2.2,所以出現錯誤了,帖出2.4的正常配置如下:

<VirtualHost *:80>
        ServerName www.test.com
        DocumentRoot /var/www/html/test
        <Directory /var/www/html/test>
                #Options Indexes FollowSymLinks MultiViews
                #AllowOverride AuthConfig
                AllowOverride All
                Order allow,deny
                allow from all
         <RequireAny>
         #指定某路徑不需要輸入用戶密碼
         #SetEnvIf REQUEST_URI "^/(admin|secure)/" PROTECTED
         #<RequireAll>
         #Require not env PROTECTED
         #Require all granted
         #</RequireAll>
          <RequireAll>
                AuthType Basic
                AuthName "Vaild"
                AuthUserFile /var/www/html/test/.htpasswd
                Require valid-user
          </RequireAll>
         </RequireAny>
        </Directory>
</VirtualHost>

備註:以上配置放到網站根目錄下的.htaccess也是可以,但,我比較喜歡放apache的配置文件裏面,另外:也有可能需要啓用以下模塊

sudo a2enmod authz_user

最後感謝以下網址提供的參考:https://www.the-art-of-web.com/system/apache-authorization/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章