Modify the default lighttpd configuration file to have one a starting conf

  * Changed the log path to /var/log and logs filenames
  * Disable IPv6
  * Do not setuid to a user that doesn't exist on the system
  * Disable pdf ranges fix for Adobe Reader since it uses regex and we
    don't always have pcre support
  * Change the network backend to writev since linux-sendfile fails on buildroot

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Simon Dawson <spdawson@gmail.com>
[Gustavo: update for 1.4.37]
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

diff -Nura lighttpd-1.4.37.orig/doc/config/conf.d/access_log.conf lighttpd-1.4.37/doc/config/conf.d/access_log.conf
--- lighttpd-1.4.37.orig/doc/config/conf.d/access_log.conf	2015-09-01 14:38:48.684673663 -0300
+++ lighttpd-1.4.37/doc/config/conf.d/access_log.conf	2015-09-01 14:38:53.975855142 -0300
@@ -9,7 +9,7 @@
 ##
 ## Default access log.
 ##
-accesslog.filename          = log_root + "/access.log"
+accesslog.filename          = log_root + "/lighttpd-access.log"
 
 ##
 ## The default format produces CLF compatible output.
diff -Nura lighttpd-1.4.37.orig/doc/config/lighttpd.conf lighttpd-1.4.37/doc/config/lighttpd.conf
--- lighttpd-1.4.37.orig/doc/config/lighttpd.conf	2015-09-01 14:38:48.684673663 -0300
+++ lighttpd-1.4.37/doc/config/lighttpd.conf	2015-09-01 14:39:40.256442492 -0300
@@ -13,8 +13,8 @@
 ## if you add a variable here. Add the corresponding variable in the
 ## chroot example aswell.
 ##
-var.log_root    = "/var/log/lighttpd"
-var.server_root = "/srv/www"
+var.log_root    = "/var/log"
+var.server_root = "/var/www"
 var.state_dir   = "/var/run"
 var.home_dir    = "/var/lib/lighttpd"
 var.conf_dir    = "/etc/lighttpd"
@@ -90,7 +90,7 @@
 ##
 ## Use IPv6?
 ##
-server.use-ipv6 = "enable"
+# server.use-ipv6 = "enable"
 
 ##
 ## bind to a specific IP
@@ -101,8 +101,8 @@
 ## Run as a different username/groupname.
 ## This requires root permissions during startup. 
 ##
-server.username  = "lighttpd"
-server.groupname = "lighttpd"
+server.username  = "www-data"
+server.groupname = "www-data"
 
 ## 
 ## enable core files.
@@ -112,7 +112,7 @@
 ##
 ## Document root
 ##
-server.document-root = server_root + "/htdocs"
+server.document-root = server_root
 
 ##
 ## The value for the "Server:" response field.
@@ -138,7 +138,7 @@
 ##
 ## Path to the error log file
 ##
-server.errorlog             = log_root + "/error.log"
+server.errorlog             = log_root + "/lighttpd-error.log"
 
 ##
 ## If you want to log to syslog you have to unset the 
@@ -188,7 +188,7 @@
 ## sendfile       - is recommended for small files.
 ## writev         - is recommended for sending many large files
 ##
-server.network-backend = "sendfile"
+server.network-backend = "writev"
 
 ##
 ## As lighttpd is a single-threaded server, its main resource limit is
@@ -311,9 +311,9 @@
 ## disable range requests for pdf files
 ## workaround for a bug in the Acrobat Reader plugin.
 ##
-$HTTP["url"] =~ "\.pdf$" {
-  server.range-requests = "disable"
-}
+# $HTTP["url"] =~ "\.pdf$" {
+#  server.range-requests = "disable"
+# }
 
 ##
 ## url handling modules (rewrite, redirect)
