Apache 無訪問權限的問題

使用Apache做爲web服務器, 常常會遇到無權限的問題, 服務器顯示:html

Forbidden
You don't have permission to access / on this server.

形成這種問題的緣由不少,最多見的是在Unix/Linux/MacOS系統中, 該目錄在 文件系統 中沒有權限, 可使用命令 chmod -R 777 目錄名 爲該目錄賦權限web

其次多是Apache的配置禁止了訪問權限, 須要配置以下ubuntu

<Directory "/www">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all        
        Require all granted   
</Directory>
  • Options是對該目錄的一些選項, Indexes表示在沒有index.html等文件的時候顯示文件列表
  • AllowOverride All 表示容許使用.htaccess文件重寫URL
  • Order allow,denyAllow from all是對ip的訪問配置
  • Require all granted 意思是容許全部的請求

使用某些第三方軟件來安裝的Apache, 好比在ubuntu下用apt-get命令, 默認配置文件中會有這麼一段配置:瀏覽器

<Directory />
        Options FollowSymLinks
        AllowOverride ALL
        Require all denied
</Directory>

出於安全方便的考慮, 將根目錄/(也包含它的子目錄)所有使用Require all denied設置爲禁止訪問,將此行註釋掉便可訪問, 但不建議這麼作, 最好是僅對須要訪問的目錄使用Require all granted來單獨賦權安全

其餘還有一些, 好比目錄下存在一個.htaccess文件, 內容爲Deny from all, 或者目錄下存在一個靜態文件index.html,內容爲服務器

<html>
<head>
    <title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

也可使瀏覽器顯示一個無權限的狀態ide

這兩種方法一般是在沒法修改服務器配置和Apache配置的狀況下, 須要禁止一些目錄的訪問權限的時候使用ui