[rt-users] lighttpd + FastCGI + RT - Initial Config Problem: 500 Internal Server Error

Maxwell Rathbone mrathbone at sagonet.com
Wed Nov 18 19:00:21 EST 2009


After nearly 6 hours of working on just this problem alone.. and a brief 
break away from the problem to clear my mind... I decided to try and 
start on the problem fresh and just go through everything once more to 
make sure I crossed all my t's and dotted my i's. While looking through 
the mason FastCGI handler, line-by-line(the programmer in me was 
determined to find the problem), I noticed that the handler actually 
makes a call to an RT class to connect to RT's database. So following 
due diligence, I double checked the RT_SiteConfig file only to find that 
I had not changed the default database options since the last time I 
recompiled RT. As soon as I corrected the database username and 
password, I restarted lighttpd, and up came the RT login window. woo hoo!

Nothing like the satisfaction knowing I resolved the issue on my own, 
and it was indeed something very simple.

As I found numerous other people who had posted this problem without a 
solution, I decided I needed to post my solution. Perhaps someone in the 
days/months/years ahead will run into this problem and find this helpful. (=

I also found it troublesome that I couldn't find anyone's stated/posted 
good lighttpd + RequestTracker/RT + FastCGI configurations. So know that 
I did post my configuration files here, and they are working at this point.

thanks

Max R

Maxwell A. Rathbone wrote:
> Hello,
>
> After over a year of running RT/RT-IR under CentOS with Apache & mySQL, 
> I decided to give it another go and create an entirely new server using 
> Lighttpd and Postgres. I'm doing this half for the educational 
> experience, and half because I've heard promising things about the 
> performance of this combination versus Apache+mySQL. Our existing 
> production server is also running an old version of RT, so I'm looking 
> to upgrade to the latest and greatest as well.
>
> This server is CentOS 5.4. I have perl 5.10.1 manually compiled 
> side-by-side, with perl 5.8.x that comes in YUM by default. I've 
> sym-linked the /usr/bin/perl so that when you check perl -v it shows 
> 5.10.1. I've updated all modules via CPAN, and ensured when I installed 
> RT that all depedencies were resolved.
>
> I've been able to get the lighttpd webserver working with 
> FastCGI+PHP(/usr/bin/php-cgi), and it is able to serve up a phpinfo.php 
> properly. So it does appear that portion works.
>
> I installed RT with the following configure line:
> ./configure --enable-graphviz --enable-gd --enable-gpg 
> --with-web-handler=fastcgi --with-db-type=Pg --with-web-user=lighttpd 
> --with-web-group=lighttpd
>
> I read that RT should be installed using the --with-web-user and 
> --with-web-group to match the web server's user, thus why those switches 
> are present.
>
> At first I wasn't even able to get lighttpd to start. I discovered that 
> I had to set a+r on /opt/rt3/etc/* so that it is able to read the 
> RT_SiteConfig.php file. Once I corrected that, it started giving me 500 
> Internal Server Error messages. Upon checking the 
> /var/log/lighttpd/error.log, I see:
> 2009-11-18 17:18:52: (log.c.97) server started
> 2009-11-18 17:18:52: (server.c.925) WARNING: unknown config-key: 
> setenv.add-environment (ignored)
> 2009-11-18 17:21:53: (mod_fastcgi.c.1768) connect failed: Connection 
> refused on unix:/tmp/request-tracker.socket-3
> 2009-11-18 17:21:53: (mod_fastcgi.c.2956) backend died; we'll disable it 
> for 5 seconds and send the request to another backend instead: 
> reconnects: 0 load: 1
> 2009-11-18 17:21:55: (mod_fastcgi.c.2494) unexpected end-of-file 
> (perhaps the fastcgi process died): pid: 8532 socket: 
> unix:/tmp/request-tracker.socket-3
> 2009-11-18 17:21:55: (mod_fastcgi.c.3279) child exited, pid: 8532 
> status: 255
> 2009-11-18 17:21:55: (mod_fastcgi.c.3326) response not received, request 
> sent: 961 on socket: unix:/tmp/request-tracker.socket-3 for / , closing 
> connection
>
> Here is my /etc/lighttpd/lighttpd.conf file:
>
> server.modules              = (
>                                 "mod_rewrite",
>                                 "mod_alias",
>                                 "mod_access",
>                                "mod_fastcgi",
>                                 "mod_accesslog" )
>
> server.document-root        = "/var/www/html"
> server.errorlog             = "/var/log/lighttpd/error.log"
> index-file.names            = ( "index.php", "index.html",
>                                 "index.htm", "default.htm" )
>
> 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",
>  )
>
> accesslog.filename          = "/var/log/lighttpd/access.log"
> url.access-deny             = ( "~", ".inc" )
>
> $HTTP["url"] =~ "\.pdf$" {
>   server.range-requests = "disable"
> }
>
> static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
> server.pid-file            = "/var/run/lighttpd.pid"
> server.username            = "lighttpd"
> server.groupname           = "lighttpd"
>
> fastcgi.server             = ( ".php" =>
>                                ( "localhost" =>
>                                  (
>                                    "socket" => 
> "/var/run/lighttpd/php-fastcgi.socket",
>                                    "bin-path" => "/usr/bin/php-cgi"
>                                  )
>                                )
>                             )
>
> $HTTP["host"] =~ "rt.sagonet.com" {
>   # Specify the documentroot
>   server.document-root = "/opt/rt3/share/html"
>
>   # Map appropriate files and extensions
>   fastcgi.map-extensions = ( ".css" => ".html", ".js" => ".html", "/" => 
> ".html", "mail-gateway" => ".html", "Search/Chart" => ".html", 
> "Search/Results.rdf" => ".html", "Search/Results.tsv" => ".html" )
>
>   # Set Lighttpd to check for an index.html file for each directory
>   index-file.names = ( "index.html" )
>
>   # Disallow access to .mhtml files
>   url.access-deny = ( ".mhtml" )
>
>   setenv.add-environment = (
>        "SCRIPT_NAME" => "/",
>   )
>
> #  # Set up an alias for the /NoAuth/images location
> #  url.rewrite-once = (
> #       "^/(?!NoAuth/images/)(.*)" => "/$1",
> #  )
>
>   # Add trailing slash so attachment downloads work
>   url.rewrite-once = (
>         "^(.*)/Ticket/Attachment/(.*)" => "/$1/Ticket/Attachment/$2/"
>   )
>
>   # Set up FastCGI handler
>   fastcgi.server = ( ".html" =>
>      ((
>                 "socket" => "/tmp/request-tracker.socket",
>                 "check-local" => "disable",
>                 "bin-path" => "/opt/rt3/bin/mason_handler.fcgi",
>                 "bin-environment" => (
>                         "PHP_FCGI_CHILDREN" => "4",
>                         "PHP_FCGI_MAX_REQUESTS" => "10000",
>                 ),
>                 "bin-copy-environment" => (
>                         "PATH", "SHELL", "USER"
>                 ),
>
>       ))
>   )
>
> }
>
>
> I've tried two different handlers for the 'bin-path' line a few lines up 
> from here. The one above is provided by default with RT. It is the one 
> that is able to at least generate an 500 Internal Server Error. I also 
> tried the mason_lighttpd_handler.fcgi located at: 
> http://redmine.lighttpd.net/projects/1/wiki/RequestTracker
>
> The mason_lighttpd_handler.fcgi handler does not even generate the 500 
> Internal Server. When I pull up RT in my browser, it kills lighttpd, 
> with the following error in the /var/log/lighttpd/error.log:
> 2009-11-18 17:23:24: (mod_fastcgi.c.1051) the fastcgi-backend 
> /opt/rt3/bin/mason_lighttpd_handler.fcgi failed to start:
> 2009-11-18 17:23:24: (mod_fastcgi.c.1055) child exited with status 2 
> /opt/rt3/bin/mason_lighttpd_handler.fcgi
> 2009-11-18 17:23:24: (mod_fastcgi.c.1058) If you're trying to run PHP as 
> a FastCGI backend, make sure you're using the FastCGI-enabled version.
> You can find out if it is the right one by executing 'php -v' and it 
> should display '(cgi-fcgi)' in the output, NOT '(cgi)' NOR '(cli)'.
> For more information, check 
> http://trac.lighttpd.net/trac/wiki/Docs%3AModFastCGI#preparing-php-as-a-fastcgi-programIf 
> this is PHP on Gentoo, add 'fastcgi' to the USE flags.
> 2009-11-18 17:23:24: (mod_fastcgi.c.1365) [ERROR]: spawning fcgi failed.
> 2009-11-18 17:23:24: (server.c.902) Configuration of plugins failed. 
> Going down.
>
> I can't help but feel like I must be missing something very basic here. 
> The web server appears to work fine with FastCGI & PHP, so it appears to 
> be the handler that is causing the problem. I did manually compile perl. 
> There is no suid on this server.
>
> I've spent the better part of my workday today researching JUST this 
> issue. I've searched the archives on this mailing list, as well as 
> extensively searched google using about every variation of words from 
> the error or descriptive text of the problem. I was able to find several 
> other people who encountered this problem, but no one ever posted a 
> resolution.
>
> Any help that could be provided on this would be GREATLY appreciated. 
> I'm hoping someone replies by tomorrow so I'll have a fresh start 
> tomorrow on trying to get this working. I'd really like to not have to 
> resort back to Apache unless I exhaust all possible options.
>
> [root at rt rt-3.8.6]# ls -l /opt/rt3/bin
> total 144
> -rwxr-xr-x 1 root rt  3178 Nov 18 16:49 mason_handler.fcgi
> -rwxr-xr-x 1 root rt  2563 Nov 18 16:49 mason_handler.scgi
> -rwxr-xr-x 1 root rt  8024 Nov 18 16:49 mason_handler.svc
> -rwxr-xr-x 1 root rt  3190 Nov 18 16:25 mason_lighttpd_handler.fcgi
> -rwxr-xr-x 1 root rt 76930 Nov 18 16:49 rt
> -rwxr-xr-x 1 root rt 12163 Nov 18 16:49 rt-crontool
> -rwxr-xr-x 1 root rt 12666 Nov 18 16:49 rt-mailgate
> -rwxr-xr-x 1 root rt  5502 Nov 18 16:49 standalone_httpd
> -rwxr-xr-x 1 root rt  5468 Nov 18 16:49 webmux.pl
>
>
> thanks in advance
>
> Max Rathbone
>
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
>
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
>
>
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
> Buy a copy at http://rtbook.bestpractical.com
>   




More information about the rt-users mailing list