[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