title: lighttpd as trouble running a lua script
body: <p>I have been trying to run a lua script in lighttpd. I am running gentoo and I installed lighttpd with the lua use flag. mod_magnet.so is where it is supposed to be. When I try to start the server I get this error:</p>
  
  
  
  <pre class="lang-none prettyprint-override"><code>2011-06-03 15:55:32: (configfile.c.912) source: /etc/lighttpd/lighttpd.conf line: 43 pos: 68 parser failed somehow near here: (
  </code></pre>
  
  <p>Here is my config file:</p>
  
  
  
  <pre class="lang-sh prettyprint-override"><code>###############################################################################
  # Default lighttpd.conf for Gentoo.
  # $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/lighttpd.conf,v 1.5     2010/11/18 15:13:47 hwoarang Exp $
  ###############################################################################
  
  # {{{ variables
  var.basedir  = "/var/www/localhost"
  var.logdir   = "/var/log/lighttpd"
  var.statedir = "/var/lib/lighttpd"
  # }}}
  
  # {{{ modules
  # At the very least, mod_access and mod_accesslog should be enabled.
  # All other modules should only be loaded if necessary.
  # NOTE: the order of modules is important.
  server.modules = (
  #    "mod_rewrite",
  #    "mod_redirect",
  #    "mod_alias",
      "mod_access",
      "mod_magnet",
  #    "mod_cml",
  #    "mod_trigger_b4_dl",
  #    "mod_auth",
  #    "mod_status",
  #    "mod_setenv",
  #    "mod_proxy",
  #    "mod_simple_vhost",
  #    "mod_evhost",
  #    "mod_userdir",
  
  #    "mod_compress",
  #    "mod_ssi",
  #    "mod_usertrack",
  #    "mod_expire",
  #    "mod_secdownload",
  #    "mod_rrdtool",
  #    "mod_webdav",
      "mod_accesslog"
  )
  # }}}
  
  ##########################################Magnet        URL##########################################
  magnet.attract-raw-url-to( "/var/www/localhost/scripts/redirect.lua" )
  
  
  ###############################################################################################
  # {{{ includes
  include "mime-types.conf"
  # fcgi and cgi are included below 
  # }}}
  
  # {{{ server settings
  server.username      = "lighttpd"
  server.groupname     = "lighttpd"
  
  server.document-root = var.basedir + "/htdocs"
  server.pid-file      = "/var/run/lighttpd.pid"
  
  server.errorlog      = var.logdir  + "/error.log"
  # log errors to syslog instead
  #   server.errorlog-use-syslog = "enable"
  
  server.indexfiles    = ("index.php", "index.html",
                          "index.htm", "default.htm")
  
  # server.tag           = "lighttpd"
  
  server.follow-symlink = "enable"
  
  # event handler (defaults to "poll")
  # see performance.txt
  # 
  # for &gt;= linux-2.4
  #   server.event-handler = "linux-rtsig"
  # for &gt;= linux-2.6
  #   server.event-handler = "linux-sysepoll"
  # for FreeBSD
  #   server.event-handler = "freebsd-kqueue"
  
  # chroot to directory (defaults to no chroot)
  # server.chroot      = "/"
  
  # bind to port (defaults to 80)
  # server.port          = 81
  
  # bind to name (defaults to all interfaces)
  # server.bind          = "grisu.home.kneschke.de"
  
  # error-handler for status 404
  # server.error-handler-404 = "/error-handler.html"
  # server.error-handler-404 = "/error-handler.php"
  
  # Format: &lt;errorfile-prefix&gt;&lt;status-code&gt;.html
  # -&gt; ..../status-404.html for 'File not found'
  # server.errorfile-prefix    = var.basedir + "/error/status-"
  
  # FAM support for caching stat() calls
  # requires that lighttpd be built with USE=fam
     server.stat-cache-engine = "fam"
  
  # If lighttpd was build with IPv6 support, and you would like to listen on IPv6,
  # uncomment the following:
  server.use-ipv6 = "enable"
  
  # }}}
  
  # {{{ mod_staticfile
  
  # which extensions should not be handled via static-file transfer
  # (extensions that are usually handled by mod_cgi, mod_fastcgi, etc).
  static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi")
  # }}}
  
  # {{{ mod_accesslog
  accesslog.filename   = var.logdir + "/access.log"
  # }}}
  
  # {{{ mod_dirlisting
  # enable directory listings
  #   dir-listing.activate      = "enable"
  #
  # don't list hidden files/directories
  #   dir-listing.hide-dotfiles = "enable"
  #
  # use a different css for directory listings
  #   dir-listing.external-css  = "/path/to/dir-listing.css"
  #
  # list of regular expressions.  files that match any of the
  # specified regular expressions will be excluded from directory
  # listings.
  #   dir-listing.exclude = ("^\.", "~$")
  # }}}
  
  # {{{ mod_access
  # see access.txt
  
  url.access-deny = ("~", ".inc")
  # }}}
  
  # {{{ mod_userdir
  # see userdir.txt
  #
  # userdir.path = "public_html"
  # userdir.exclude-user = ("root")
  # }}}
  
  # {{{ mod_ssi
  # see ssi.txt
  #
  # ssi.extension = (".shtml")
  # }
  
  # {{{ mod_ssl
  # see ssl.txt
  #
  # ssl.engine    = "enable"
  # ssl.pemfile   = "server.pem"
  # }}}
  
  # {{{ mod_status
  # see status.txt
  #
  # status.status-url  = "/server-status"
  # status.config-url  = "/server-config"
  # }}}
  
  # {{{ mod_simple_vhost
  # see simple-vhost.txt
  #
  #  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   = "/home/weigon/wwwroot/servers/"
  # simple-vhost.default-host  = "grisu.home.kneschke.de"
  # simple-vhost.document-root = "/pages/"
  # }}}
  
  # {{{ mod_compress
  # see compress.txt
  #
  # compress.cache-dir   = var.statedir + "/cache/compress"
  # compress.filetype    = ("text/plain", "text/html")
  # }}}
  
  # {{{ mod_proxy
  # see proxy.txt
  #
  # proxy.server               = ( ".php" =&gt;
  #                               ( "localhost" =&gt;
  #                                 (
  #                                   "host" =&gt; "192.168.0.101",
  #                                   "port" =&gt; 80
  #                                 )
  #                               )
  #                             )
  # }}}
  
  # {{{ mod_auth
  # see authentication.txt
  #
  # 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=$)"
  
  # auth.require               = ( "/server-status" =&gt;
  #                               (
  #                                 "method"  =&gt; "digest",
  #                                 "realm"   =&gt; "download archiv",
  #                                 "require" =&gt; "user=jan"
  #                               ),
  #                               "/server-info" =&gt;
  #                               (
  #                                 "method"  =&gt; "digest",
  #                                 "realm"   =&gt; "download archiv",
  #                                 "require" =&gt; "valid-user"
  #                               )
  #                             )
  # }}}
  
  # {{{ mod_rewrite
  # see rewrite.txt
  #
  # url.rewrite = (
  #   "^/$"       =&gt;      "/server-status"
  # )
  # }}}
  
  # {{{ mod_redirect
  # see redirect.txt
  #
  # url.redirect = (
  #   "^/wishlist/(.+)"       =&gt;      "http://www.123.org/$1"
  # )
  # }}}
  
  # {{{ mod_evhost
  # define a pattern for the host url finding
  # %% =&gt; % sign
  # %0 =&gt; domain name + tld
  # %1 =&gt; tld
  # %2 =&gt; domain name without tld
  # %3 =&gt; subdomain 1 name
  # %4 =&gt; subdomain 2 name
  #
  # evhost.path-pattern        = "/home/storage/dev/www/%3/htdocs/"
  # }}}
  
  # {{{ mod_expire
  # expire.url = (
  #   "/buggy/"       =&gt;      "access 2 hours",
  #   "/asdhas/"      =&gt;      "access plus 1 seconds 2 minutes"
  # )
  # }}}
  
  # {{{ mod_rrdtool
  # see rrdtool.txt
  #
  # rrdtool.binary  = "/usr/bin/rrdtool"
  # rrdtool.db-name = var.statedir + "/lighttpd.rrd"
  # }}}
  
  # {{{ mod_setenv
  # see setenv.txt
  #
  # setenv.add-request-header  = ( "TRAV_ENV" =&gt; "mysql://user@host/db" )
  # setenv.add-response-header = ( "X-Secret-Message" =&gt; "42" )
  # }}}
  
  # {{{ mod_trigger_b4_dl
  # see trigger_b4_dl.txt
  #
  # trigger-before-download.gdbm-filename = "/home/weigon/testbase/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
  # }}}
  
  # {{{ mod_cml
  # see cml.txt
  #
  # don't forget to add index.cml to server.indexfiles
  # cml.extension               = ".cml"
  # cml.memcache-hosts          = ( "127.0.0.1:11211" )
  # }}} 
  
  # {{{ mod_webdav
  # see webdav.txt
  #
  # $HTTP["url"] =~ "^/dav($|/)" {
  #     webdav.activate = "enable"
  #     webdav.is-readonly = "enable"
  # }
  # }}}
  
  # {{{ extra rules
  #
  # set Content-Encoding and reset Content-Type for browsers that
  # support decompressing on-thy-fly (requires mod_setenv)
  # $HTTP["url"] =~ "\.gz$" {
  #     setenv.add-response-header = ("Content-Encoding" =&gt; "x-gzip")
  #     mimetype.assign = (".gz" =&gt; "text/plain")
  # }
  
  # $HTTP["url"] =~ "\.bz2$" {
  #     setenv.add-response-header = ("Content-Encoding" =&gt; "x-bzip2")
  #     mimetype.assign = (".bz2" =&gt; "text/plain")
  # }
  #
  # }}}
  
  # {{{ debug
  # debug.log-request-header   = "enable"
  # debug.log-response-header  = "enable"
  # debug.log-request-handling = "enable"
  # debug.log-file-not-found   = "enable"
  # }}}
  
  # {{{ cgi includes
  # uncomment for cgi support
  #   include "mod_cgi.conf"
  # uncomment for php/fastcgi support
  include "mod_fastcgi.conf"
  # }}}
  
  # vim: set ft=conf foldmethod=marker et :
  </code></pre>
  
  <p>If I comment out "mod_magnet", I still get the same error. If I comment out the line</p>
  
  <pre><code>magnet.attract-raw-url-to( "/var/www/localhost/scripts/redirect.lua" )
  </code></pre>
  
  <p>The problem goes away but of course I then can't use my script for testing reasons I commented out my script just to reduce complexities. My guess is the problem is that the mod_magnet isn't loading. Any ideas?</p>