Debian
Lighttpd 靜態文件伺服器 403 禁止錯誤
我在 Debian Jessie 上安裝了 lighttpd 以提供靜態文件,我在 /media/storage 上安裝了一個 USB 驅動器, /media/storage/www 作為我的文件根目錄,我的 lighttpd.conf 如下所示:
server.modules = ( "mod_access", "mod_alias", "mod_compress", "mod_redirect", # "mod_rewrite", ) server.document-root = "/media/storage/www/" server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) server.errorlog = "/var/log/lighttpd/error.log" server.pid-file = "/var/run/lighttpd.pid" server.username = "www-data" server.groupname = "www-data" server.port = 80 index-file.names = ( "index.php", "index.html", "index.lighttpd.html" ) url.access-deny = ( "~", ".inc" ) static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) compress.cache-dir = "/var/cache/lighttpd/compress/" compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" ) # default listening port for IPv6 falls back to the IPv4 port include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port include_shell "/usr/share/lighttpd/create-mime.assign.pl" include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
我希望能夠使用我的普通使用者“jurre”編輯網站。所以我做了“sudo chown jurre:www-data /media/storage/www”和“sudo chmod 740 /media/storage/www”(所以我可以讀、寫和執行文件,但網路伺服器只能讀)。當然,我註銷並重新登錄,然後在此之後重新啟動 lighttpd。我添加了一個帶有“Hello World!”的簡單 index.html。測試設置,但我在上網時不斷收到 403 禁止錯誤
ls -l 在 /media/storage/www :
total 8 -rw-r--r-- 1 jurre www-data 58 May 16 16:43 index.html
我還檢查了 lighttpd 錯誤日誌,但它只顯示 Web 伺服器何時關閉並重新啟動,日誌中沒有任何錯誤。
您無法訪問您的
www
文件夾,因為www-data
使用者只有 4 個權限(使用者:組jurre:www-data
和權限 740),這意味著對文件夾沒有執行權限www
,只能讀取(讀取文件夾名稱和屬性)。您需要對文件夾執行權限,因為執行文件夾意味著打開它(列出文件或進入它)。您可以使用自己的使用者
jurre
(右 7)執行此操作,但www-data
沒有設置執行位。將此文件夾的權限更改為 750,然後重試。
另一個常見問題是機器上的活動 SELinux。
即使對目錄樹具有正確的權限,如果該目錄未在 SELinux 中註冊,您仍然會收到 403。
chcon -R -h -t httpd_sys_content_t /absolute/path
會解決這個問題。