Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Ruby and CGI error 500
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  8 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
greyfade@gmail.com  
View profile  
 More options May 21 2005, 6:10 pm
Newsgroups: comp.lang.ruby
From: "greyf...@gmail.com" <greyf...@gmail.com>
Date: 21 May 2005 15:10:21 -0700
Local: Sat, May 21 2005 6:10 pm
Subject: Ruby and CGI error 500
this is a problem that's been driving me nuts ever since i first tried
it.

i can create simple, minimal scripts in Python, Perl, and PHP that run
flawlessly on the first try with minimal effort, both on my local
testing system (Apache 2.0.52 and Ruby 1.8.2) and on the server my
personal site is hosted on (Apache 1.3.33 and unknown version of Ruby -
i'm trying to find out).  but no matter what i try, i simply can not
get even the most minimal ruby script to function:

#!/usr/bin/env ruby

print "Content-type: text/html\n\n"
print "<html><body>Hello World!</body></html>\n"

it runs perfectly fine at the console, no warnings, no errors, no
problems.  but as a CGI script, it's another story:  i get an error 500
and the cryptic (and seemingly common) "Premature end of script
headers".  no other warnings or errors.  if i simply change "ruby" to
"python" on the shebang line, the above script magically works with no
other effort on my part.

i'm going insane because nothing, AFAICT, is wrong.  the server is
correctly set-up, permissions are correct, ownership is correct, ruby
is installed and working, yet NOTHING seems to coax it into working.
it repeatedly reports this incredibly uninformative "Premature end of
script headers" error.

is there something i could have missed?  a possible misconfiguration?
or does ruby just hate me?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
James Britt  
View profile  
 More options May 21 2005, 7:26 pm
Newsgroups: comp.lang.ruby
From: James Britt <jame...@neurogami.com>
Date: Sun, 22 May 2005 08:26:30 +0900
Local: Sat, May 21 2005 7:26 pm
Subject: Re: Ruby and CGI error 500

greyf...@gmail.com wrote:

Given this:

> #!/usr/bin/env ruby

What user is executing the script, and is ruby in that user's env?

Try putting the literal path to Ruby there instead.

James


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
ES  
View profile  
 More options May 21 2005, 9:16 pm
Newsgroups: comp.lang.ruby
From: ES <ruby...@magical-cat.org>
Date: Sun, 22 May 2005 10:16:06 +0900
Local: Sat, May 21 2005 9:16 pm
Subject: Re: Ruby and CGI error 500

Le 21/5/2005, "greyf...@gmail.com" <greyf...@gmail.com> a écrit:

This, actually, goes to the HTTP spec. Try this:

#!/bin/env/ ruby
print "HTTP/1.0 200 OK\r\n"
print "Content-type: text/html\r\n\r\n"
print "<html><body>Hello World!</body></html>\n"

>i'm going insane because nothing, AFAICT, is wrong.  the server is
>correctly set-up, permissions are correct, ownership is correct, ruby
>is installed and working, yet NOTHING seems to coax it into working.
>it repeatedly reports this incredibly uninformative "Premature end of
>script headers" error.

>is there something i could have missed?  a possible misconfiguration?
>or does ruby just hate me?

E

--
template<typename duck>
void quack(duck& d) { d.quack(); }


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ara.T.Howard  
View profile  
 More options May 21 2005, 8:05 pm
Newsgroups: comp.lang.ruby
From: "Ara.T.Howard" <Ara.T.How...@noaa.gov>
Date: Sat, 21 May 2005 18:05:53 -0600
Local: Sat, May 21 2005 8:05 pm
Subject: Re: Ruby and CGI error 500

nothing magic about it:

   [ahoward@localhost ~]$ cat a.rb
   #!/usr/bin/env ruby
   print "Content-type: text/html\n\n"
   print "<html><body>Hello World!</body></html>\n"

   [ahoward@localhost ~]$ cat a.py
   #!/usr/bin/env python
   print "Content-type: text/html\n\n"
   print "<html><body>Hello World!</body></html>\n"

   [ahoward@localhost ~]$ a.rb | od -c > a.rb.out

   [ahoward@localhost ~]$ a.py | od -c > a.py.out

   [ahoward@localhost ~]$ diff -u a.rb.out a.py.out
   --- a.rb.out    2005-05-21 17:58:33.000000000 -0600
   +++ a.py.out    2005-05-21 17:58:35.000000000 -0600
   @@ -1,5 +1,6 @@
    0000000   C   o   n   t   e   n   t   -   t   y   p   e   :       t   e
   -0000020   x   t   /   h   t   m   l  \n  \n   <   h   t   m   l   >   <
   -0000040   b   o   d   y   >   H   e   l   l   o       W   o   r   l   d
   -0000060   !   <   /   b   o   d   y   >   <   /   h   t   m   l   >  \n
   -0000100
   +0000020   x   t   /   h   t   m   l  \n  \n  \n   <   h   t   m   l   >
   +0000040   <   b   o   d   y   >   H   e   l   l   o       W   o   r   l
   +0000060   d   !   <   /   b   o   d   y   >   <   /   h   t   m   l   >
   +0000100  \n  \n
   +0000102

or, put another way:

   harp:~ > ruby -e 'print 42' | od -c
   0000000   4   2
   0000002

   harp:~ > python -c 'print 42' | od -c
   0000000   4   2  \n
   0000003

so you were just lucky that python and perl were sending you 'extra' newline.
you'd have even more issues if you did something like on a unix vs windows box
and it's the reason cgi abstraction are made.

this will work no matter what platform:

   [ahoward@localhost ~]$ cat a.rb
   #!/usr/bin/env ruby
   require 'cgi'
   CGI::new.out{ "<html><body>Hello World!</body></html>\n" }

   [ahoward@localhost ~]$ ruby a.rb < /dev/null
   Content-Type: text/html
   Content-Length: 39

   <html><body>Hello World!</body></html>
   [ahoward@localhost ~]$ ruby a.rb < /dev/null | od -c
   0000000   C   o   n   t   e   n   t   -   T   y   p   e   :       t   e
   0000020   x   t   /   h   t   m   l  \r  \n   C   o   n   t   e   n   t
   0000040   -   L   e   n   g   t   h   :       3   9  \r  \n  \r  \n   <
   0000060   h   t   m   l   >   <   b   o   d   y   >   H   e   l   l   o
   0000100       W   o   r   l   d   !   <   /   b   o   d   y   >   <   /
   0000120   h   t   m   l   >  \n
   0000126

you'll also note that cgis are supposed to send '\r\n' not '\n\n' so the other
two never really should have worked anyhow ;-)

> i'm going insane because nothing, AFAICT, is wrong.  the server is correctly
> set-up, permissions are correct, ownership is correct, ruby is installed and
> working, yet NOTHING seems to coax it into working.  it repeatedly reports
> this incredibly uninformative "Premature end of script headers" error.

this is because the script headers prematurely ended before the content started
since \r\n was never seen ;-)

> is there something i could have missed?  a possible misconfiguration?  or
> does ruby just hate me?

doubtful ;-)

-a
--
=========================================================================== ====
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| My religion is very simple.  My religion is kindness.
| --Tenzin Gyatso
=========================================================================== ====


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
greyfade@gmail.com  
View profile  
 More options May 23 2005, 4:13 am
Newsgroups: comp.lang.ruby
From: "greyf...@gmail.com" <greyf...@gmail.com>
Date: 23 May 2005 01:13:01 -0700
Local: Mon, May 23 2005 4:13 am
Subject: Re: Ruby and CGI error 500
(apologies to ES for email.)

not the case, apparently.  it works happily with "\n" instead of "\r\n"
and doesn't seem to require the 200 header.

> >i'm going insane because nothing, AFAICT, is wrong.  the server is
> >correctly set-up, permissions are correct, ownership is correct,
ruby
> >is installed and working, yet NOTHING seems to coax it into working.
> >it repeatedly reports this incredibly uninformative "Premature end
of
> >script headers" error.

> >is there something i could have missed?  a possible
misconfiguration?
> >or does ruby just hate me?

on one of my test servers, it turns out there is no ruby installed and
on another, it seems to be a major misconfiguration.  so it seems
there's a lot i've missed as my original script runs unmodified on yet
another server.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
greyfade@gmail.com  
View profile  
 More options May 23 2005, 4:19 am
Newsgroups: comp.lang.ruby
From: "greyf...@gmail.com" <greyf...@gmail.com>
Date: 23 May 2005 01:19:41 -0700
Local: Mon, May 23 2005 4:19 am
Subject: Re: Ruby and CGI error 500

Ara.T.Howard wrote:

<snip a bunch of pointless drivel>

you missed everything i actually said in my post.

would it have helped if i had not said "magically worked" but instead
some more boring phrase like "worked as expected"?  or would
"mystically worked" have thrown you off as well?

(if this message sounds condescending, it is.  i was seriously offended
by the verbosity and tone of your post.  apologies if you are
offended.)

> On Sun, 22 May 2005, greyf...@gmail.com wrote:

> > i'm going insane because nothing, AFAICT, is wrong.  the server is
correctly
> > set-up, permissions are correct, ownership is correct, ruby is
installed and
> > working, yet NOTHING seems to coax it into working.  it repeatedly
reports
> > this incredibly uninformative "Premature end of script headers"
error.

> this is because the script headers prematurely ended before the
content started
> since \r\n was never seen ;-)

it works without any linefeeds.  newlines are sufficient in all my test
cases, irregarldess of my choice of language.  all platforms are
unix-based, and i've not touched Windows in quite some time, so i'm
unsure of its behavior or requirements.

if it's out of spec, it doesn't seem to matter.

> > is there something i could have missed?  a possible

misconfiguration?  or
> > does ruby just hate me?

> doubtful ;-)

no, it turns out to be a major misconfiguration on my part.  there is
something seriously wrong with one of my test environments.  it works
on another server (one of my targets).

> -a
> --

=========================================================================== ====
> | email :: ara [dot] t [dot] howard [at] noaa [dot] gov
> | phone :: 303.497.6469
> | My religion is very simple.  My religion is kindness.
> | --Tenzin Gyatso

=========================================================================== ====

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
ES  
View profile  
 More options May 23 2005, 2:09 pm
Newsgroups: comp.lang.ruby
From: ES <ruby...@magical-cat.org>
Date: Tue, 24 May 2005 03:09:59 +0900
Local: Mon, May 23 2005 2:09 pm
Subject: Re: Ruby and CGI error 500

Le 23/5/2005, "greyf...@gmail.com" <greyf...@gmail.com> a écrit:

>Ara.T.Howard wrote:
><snip a bunch of pointless drivel>

>you missed everything i actually said in my post.

>would it have helped if i had not said "magically worked" but instead
>some more boring phrase like "worked as expected"?  or would
>"mystically worked" have thrown you off as well?

>(if this message sounds condescending, it is.  i was seriously offended
>by the verbosity and tone of your post.  apologies if you are
>offended.)

Yours is quite a poor attitude to take toward people who
are attempting to assist you on their own time, for free,
particularly in light of A) your example not being exactly
valid HTTP and B) that it appears the problem was somewhere
else altogether.

Hopefully your issue is solved, now. If it is not, feel free
to askfor further advice but please try to do so with civility
and respect.

E

--
template<typename duck>
void quack(duck& d) { d.quack(); }


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Hal Fulton  
View profile  
 More options May 23 2005, 11:35 pm
Newsgroups: comp.lang.ruby
From: Hal Fulton <hal9...@hypermetrics.com>
Date: Tue, 24 May 2005 12:35:42 +0900
Local: Mon, May 23 2005 11:35 pm
Subject: Re: Ruby and CGI error 500

greyf...@gmail.com wrote:
> it works without any linefeeds.  newlines are sufficient in all my test
> cases, irregarldess of my choice of language.  all platforms are
> unix-based, and i've not touched Windows in quite some time, so i'm
> unsure of its behavior or requirements.

> if it's out of spec, it doesn't seem to matter.

I think that's dependent on the web server, or is it the browser?
Too late for my poor brain.

Some are "looser" than others, but Ara is quite right in saying
that it is supposed to be a CRLF combination.

It really is better to code to the spec -- better to work 100%
of the time than 98%.

Cheers,
Hal


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »