Lighttpd 정적 파일 서버 403 금지 오류

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 금지 오류가 계속 발생합니다.

/media/storage/www의 ls -l :

total 8
-rw-r--r-- 1 jurre www-data 58 May 16 16:43 index.html

lighttpd 오류 로그도 확인했지만 웹 서버가 종료되었다가 다시 시작된 경우에만 표시되며 로그에는 오류가 없습니다.

답변1

사용자에게는 4개의 권한(사용자:그룹 및 권한 740)만 있으므로 www폴더에 액세스할 수 없습니다. 즉, 폴더에 대한 실행 권한은 없고 읽기만 가능합니다(폴더 이름 및 속성 읽기).www-datajurre:www-datawww

폴더를 실행한다는 것은 폴더를 여는 것(파일 목록을 보거나 폴더를 입력하기 위해)을 의미하므로 폴더에서 바로 실행해야 합니다. 자신의 사용자 jurre(오른쪽 7) 로 이 작업을 수행할 수 있지만 www-data실행 비트가 설정되어 있지 않습니다.

이 폴더에 대한 권한을 750으로 변경하고 다시 시도하세요.

답변2

또 다른 빈번한 문제는 시스템의 활성 SELinux입니다.

디렉토리 트리에 대한 올바른 권한이 있어도 디렉토리가 SELinux에 등록되지 않은 경우 여전히 403이 표시됩니다.

chcon -R -h -t httpd_sys_content_t /absolute/path

이 문제를 해결할 것입니다.

답변3

슈퍼펠리컨,

위의 댓글에 이어. 시도해 보고 싶을 수도 있음 "sudo chown -R www-data:www-data * " 또는"sudo chown -R www-data:www-data /media/storage/www/* " 해당 폴더 또는 내부의 하위 폴더/미디어/스토리지/www 이런 방식으로 웹 서버는 사용자가 아닌 귀하의 폴더와 파일을 소유합니다.

chmod까지 .. 또한 다음과 같이 시도해보십시오."sudo chmod -R 755 /media/storage/www/* " 최악의 경우"chmod -R 775" 웹 서버와 물리적 OS 자체 사이에는 다양한 수준의 파일 보안이 있습니다. chown/chmod는 OS 수준에서 더 많습니다. 서버에서 파일과 웹 페이지를 얻는 데에도 영향을 미칩니다.

이것이 조금 도움이 되기를 바랍니다.. 건배..

관련 정보