403 error
Added by ivanf almost 15 years ago
Hi I am always getting 403 forbidden when trying to view our website page using lighttpd .
I have no idea why this happens permission for some dirs that says access denied are set to 755
I tried everything so your help will be much appreciated.
See my config file :
- lighttpd configuration file #
- use it as a base for lighttpd 1.0.0 and above #
- $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $
- Options you really have to take care of ####################
- modules to load
- at least mod_access and mod_accesslog should be loaded
- all other module should only be loaded if really neccesary
- - saves some time
- - saves memory
server.modules = (
"mod_rewrite",
"mod_secdownload","mod_flv_streaming"
,"mod_auth","mod_userdir","mod_cgi", "mod_alias","mod_fastcgi")
- ,
- "mod_cml",
- "mod_trigger_b4_dl",
- "mod_auth",
- "mod_status",
- "mod_setenv",
- "mod_fastcgi",
- "mod_proxy",
- "mod_simple_vhost",
- "mod_evhost",
- "mod_userdir",
- "mod_cgi",
- "mod_compress",
- "mod_ssi",
- "mod_usertrack",
- "mod_expire",
- "mod_secdownload",
- "mod_rrdtool",
- "mod_accesslog" )
- a static document-root, for virtual-hosting take look at the
- server.virtual-* options
server.document-root = "/home/awebsite/public_html/"
url.rewrite-once = ( "^/(.*)\.(.+)$" => "$0", "^/(.+)/?$" => "/loader.php/$1" )
flv-streaming.extensions = ( ".flv" )
- where to send error-messages to
server.errorlog = "/var/log/lighttpd/error.log"
- files to check for if .../ is requested
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm" )
- set the event-handler (read the performance section in the manual)
- server.event-handler = "freebsd-kqueue" # needed on OS X
- mimetype mapping
mimetype.assign = (
".rpm" => "application/x-rpm",
".pdf" => "application/pdf",
".sig" => "application/pgp-signature",
".spl" => "application/futuresplash",
".class" => "application/octet-stream",
".ps" => "application/postscript",
".torrent" => "application/x-bittorrent",
".dvi" => "application/x-dvi",
".gz" => "application/x-gzip",
".pac" => "application/x-ns-proxy-autoconfig",
".swf" => "application/x-shockwave-flash",
".tar.gz" => "application/x-tgz",
".tgz" => "application/x-tgz",
".tar" => "application/x-tar",
".zip" => "application/zip",
".mp3" => "audio/mpeg",
".m3u" => "audio/x-mpegurl",
".wma" => "audio/x-ms-wma",
".wax" => "audio/x-ms-wax",
".ogg" => "application/ogg",
".wav" => "audio/x-wav",
".gif" => "image/gif",
".jar" => "application/x-java-archive",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".png" => "image/png",
".xbm" => "image/x-xbitmap",
".xpm" => "image/x-xpixmap",
".xwd" => "image/x-xwindowdump",
".css" => "text/css",
".html" => "text/html",
".htm" => "text/html",
".js" => "text/javascript",
".asc" => "text/plain",
".c" => "text/plain",
".cpp" => "text/plain",
".log" => "text/plain",
".conf" => "text/plain",
".text" => "text/plain",
".txt" => "text/plain",
".dtd" => "text/xml",
".xml" => "text/xml",
".mpeg" => "video/mpeg",
".mpg" => "video/mpeg",
".mov" => "video/quicktime",
".qt" => "video/quicktime",
".avi" => "video/x-msvideo",
".asf" => "video/x-ms-asf",
".asx" => "video/x-ms-asf",
".wmv" => "video/x-ms-wmv",
".bz2" => "application/x-bzip",
".tbz" => "application/x-bzip-compressed-tar",
".tar.bz2" => "application/x-bzip-compressed-tar", # default mime type
"" => "application/octet-stream",
)
- Use the "Content-Type" extended attribute to obtain mime type if possible
#mimetype.use-xattr = "enable"
- send a different Server: header
- be nice and keep it at lighttpd
- server.tag = "lighttpd"
- accesslog module
accesslog.filename = "/var/log/lighttpd/access.log"
- deny access the file-extensions #
- ~ is for backupfiles from vi, emacs, joe, ...
- .inc is often used for code includes which should in general not be part
- of the document-root
#url.access-deny = ( "~", ".inc" )
$HTTP["url"] =~ "\.pdf$" {
server.range-requests = "disable"
}
- which extensions should not be handle via static-file transfer #
- .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
- Options that are good to be but not neccesary to be changed #######
- bind to port (default: 80)
#server.port = 80
- bind to localhost (default: all interfaces)
#server.bind = "216.14.126.80"
- error-handler for status 404
#server.error-handler-404 = "/error-handler.html"
#server.error-handler-404 = "/error-handler.php"
- to help the rc.scripts
server.pid-file = "/var/run/lighttpd.pid"
- virtual hosts ##
- If you want name-based virtual hosting add the next three settings and load
- mod_simple_vhost ##
- document-root =
- virtual-server-root + virtual-server-default-host + virtual-server-docroot
- or
- virtual-server-root + http-host + virtual-server-docroot
##
#simple-vhost.server-root = "/srv/www/vhosts/"
#simple-vhost.default-host = "www.example.org"
#simple-vhost.document-root = "/htdocs/"
- Format: <errorfile-prefix><status-code>.html
> ..../status-404.html for 'File not found'"
#server.errorfile-prefix = "/usr/share/lighttpd/errors/status
#server.errorfile-prefix = "/srv/www/errors/status-"
- virtual directory listings
#dir-listing.activate = "enable" - select encoding for directory listings
#dir-listing.encoding = "utf-8"
- enable debugging
#debug.log-request-header = "enable"
#debug.log-response-header = "enable"
#debug.log-request-handling = "enable"
#debug.log-file-not-found = "enable"
- only root can use these options #
- chroot() to directory (default: no chroot() )
#server.chroot = "/"
- change uid to <uid> (default: don't care)
server.username = "lighttpd"
- change uid to <uid> (default: don't care)
server.groupname = "lighttpd"
- compress module
#compress.cache-dir = "/var/cache/lighttpd/compress/"
#compress.filetype = ("text/plain", "text/html")
- proxy module
- read proxy.txt for more info
#proxy.server = ( ".php" =>
- ( "localhost" =>
- (
- "host" => "192.168.0.101",
- "port" => 80
- )
- )
- )
- fastcgi module
- read fastcgi.txt for more info
- for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
#fastcgi.server = ( ".php" => # ( "localhost" => # ( # "socket" => "/tmp/php-fastcgi.socket", # "bin-path" => "/usr/bin/php-cgi" # ) # ) # )
- CGI module
cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl" ) #
- SSL engine
#ssl.engine = "enable"
#ssl.pemfile = "/etc/ssl/private/lighttpd.pem"
- status module
#status.status-url = "/server-status"
#status.config-url = "/server-config"
- auth module
- read authentication.txt for more info
#auth.backend = "plain"
#auth.backend.plain.userfile = "lighttpd.user"
#auth.backend.plain.groupfile = "lighttpd.group"
#auth.backend.ldap.hostname = "localhost"
#auth.backend.ldap.base-dn = "dc=my-domain,dc=com"
#auth.backend.ldap.filter = "(uid=$)"
- (
- "method" => "digest",
- "realm" => "download archiv",
- "require" => "user=jan"
- ),
- "/server-config" =>
- (
- "method" => "digest",
- "realm" => "download archiv",
- "require" => "valid-user"
- )
- )
- url handling modules (rewrite, redirect, access)
#url.rewrite = ( "^/$" => "/server-status" )
#url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) - both rewrite/redirect support back reference to regex conditional using %n
#$HTTP["host"] =~ "^www\.(.*)" {
- url.redirect = ( "^/(.*)" => "http://%1/$1" )
#}
- define a pattern for the host url finding
- %% => % sign
- %0 => domain name + tld
- %1 => tld
- %2 => domain name without tld
- %3 => subdomain 1 name
- %4 => subdomain 2 name
#
#evhost.path-pattern = "/srv/www/vhosts/%3/htdocs/"
- expire module
#expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
- ssi
#ssi.extension = ( ".shtml" )
- rrdtool
#rrdtool.binary = "/usr/bin/rrdtool"
#rrdtool.db-name = "/var/lib/lighttpd/lighttpd.rrd"
- setenv
#setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" )
#setenv.add-response-header = ( "X-Secret-Message" => "42" )
- for mod_trigger_b4_dl
- trigger-before-download.gdbm-filename = "/var/lib/lighttpd/trigger.db"
- trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
- trigger-before-download.trigger-url = "^/trigger/"
- trigger-before-download.download-url = "^/download/"
- trigger-before-download.deny-url = "http://127.0.0.1/index.html"
- trigger-before-download.trigger-timeout = 10
- for mod_cml
- don't forget to add index.cml to server.indexfiles
- cml.extension = ".cml"
- cml.memcache-hosts = ( "127.0.0.1:11211" )
- variable usage:
- variable name without "." is auto prefixed by "var." and becomes "var.bar"
#bar = 1
#var.mystring = "foo"
- integer add
#bar += 1 - string concat, with integer cast as string, result: "www.foo1.com"
#server.name = "www." + mystring + var.bar + ".com" - array merge
#index-file.names = (foo + ".php") + index-file.names
#index-file.names += (foo + ".php")
- include
#include /etc/lighttpd/lighttpd-inc.conf
- same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
#include "lighttpd-inc.conf"
- include_shell
#include_shell "echo var.a=1"
- the above is same as:
#var.a=1
debug.log-request-handling = "enable"
secdownload.secret = "panos"
secdownload.document-root = "/home/awebsite/public_html/media/videos/flv" # path to your .flv folder
secdownload.uri-prefix = "/flv/" # path to the secure download link -> http://mytubesite.com/flv
secdownload.timeout = 43200 # link we be alive for 12hours[count in seconds 60*60*12]
error log:
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.276) -- sanatising URI
2010-05-17 05:46:18: (response.c.277) URI-path : /media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.391) -- before doc_root
2010-05-17 05:46:18: (response.c.392) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.393) Rel-Path : /media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.394) Path :
2010-05-17 05:46:18: (response.c.442) -- after doc_root
2010-05-17 05:46:18: (response.c.443) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.444) Rel-Path : /media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.445) Path : /home/awebsite/public_html/media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.462) -- logical > physical handling physical path
2010-05-17 05:46:18: (response.c.463) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.464) Rel-Path : /media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.465) Path : /home/awebsite/public_html/media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.482) -
2010-05-17 05:46:18: (response.c.483) Path : /home/awebsite/public_html/media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.529) -- access denied
2010-05-17 05:46:18: (response.c.530) Path : /home/awebsite/public_html/media/videos/tmb/515/1.jpg
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.276) -- sanatising URI
2010-05-17 05:46:18: (response.c.277) URI-path : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.391) -- before doc_root
2010-05-17 05:46:18: (response.c.392) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.393) Rel-Path : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.394) Path :
2010-05-17 05:46:18: (response.c.442) -- after doc_root
2010-05-17 05:46:18: (response.c.443) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.444) Rel-Path : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.445) Path : /home/awebsite/public_html/media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.462) -- logical > physical handling physical path
2010-05-17 05:46:18: (response.c.463) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.464) Rel-Path : /media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.465) Path : /home/awebsite/public_html/media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.482) -
2010-05-17 05:46:18: (response.c.483) Path : /home/awebsite/public_html/media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.529) -- access denied
2010-05-17 05:46:18: (response.c.530) Path : /home/awebsite/public_html/media/videos/tmb/486/1.jpg
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.276) -- sanatising URI
2010-05-17 05:46:18: (response.c.277) URI-path : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.391) -- before doc_root
2010-05-17 05:46:18: (response.c.392) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.393) Rel-Path : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.394) Path :
2010-05-17 05:46:18: (response.c.442) -- after doc_root
2010-05-17 05:46:18: (response.c.443) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.444) Rel-Path : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.445) Path : /home/awebsite/public_html/media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.462) -- logical > physical handling physical path
2010-05-17 05:46:18: (response.c.463) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.464) Rel-Path : /media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.465) Path : /home/awebsite/public_html/media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.482) -
2010-05-17 05:46:18: (response.c.483) Path : /home/awebsite/public_html/media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.529) -- access denied
2010-05-17 05:46:18: (response.c.530) Path : /home/awebsite/public_html/media/videos/tmb/489/1.jpg
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.276) -- sanatising URI
2010-05-17 05:46:18: (response.c.277) URI-path : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.391) -- before doc_root
2010-05-17 05:46:18: (response.c.392) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.393) Rel-Path : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.394) Path :
2010-05-17 05:46:18: (response.c.442) -- after doc_root
2010-05-17 05:46:18: (response.c.443) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.444) Rel-Path : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.445) Path : /home/awebsite/public_html/media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.462) -- logical > physical handling physical path
2010-05-17 05:46:18: (response.c.463) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.464) Rel-Path : /media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.465) Path : /home/awebsite/public_html/media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.482) -
2010-05-17 05:46:18: (response.c.483) Path : /home/awebsite/public_html/media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.529) -- access denied
2010-05-17 05:46:18: (response.c.530) Path : /home/awebsite/public_html/media/videos/tmb/459/1.jpg
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.221) -- splitting Request-URI
2010-05-17 05:46:18: (response.c.222) Request-URI : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.223) URI-scheme : http
2010-05-17 05:46:18: (response.c.224) URI-authority: www.awebsite.com
2010-05-17 05:46:18: (response.c.225) URI-path : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.226) URI-query :
2010-05-17 05:46:18: (response.c.276) -- sanatising URI
2010-05-17 05:46:18: (response.c.277) URI-path : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.391) -- before doc_root
2010-05-17 05:46:18: (response.c.392) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.393) Rel-Path : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.394) Path :
2010-05-17 05:46:18: (response.c.442) -- after doc_root
2010-05-17 05:46:18: (response.c.443) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.444) Rel-Path : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.445) Path : /home/awebsite/public_html/media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.462) -- logical > physical handling physical path
2010-05-17 05:46:18: (response.c.463) Doc-Root : /home/awebsite/public_html/
2010-05-17 05:46:18: (response.c.464) Rel-Path : /media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.465) Path : /home/awebsite/public_html/media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.482) -
2010-05-17 05:46:18: (response.c.483) Path : /home/awebsite/public_html/media/videos/tmb/491/1.jpg
2010-05-17 05:46:18: (response.c.529) -- access denied
2010-05-17 05:46:18: (response.c.530) Path : /home/awebsite/public_html/media/videos/tmb/491/1.jpg