My "Hello World" script is not displaying properly

L

laredotornado

Hi,

I just installed mod_ruby1.2.5 with Apache 2.2.3 on Fedora Core 5
Linux. Triumphant, I downloaded this test script to my web root
(public_html/test.rbx)

#!/usr/local/bin/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>\r\n"

I restarted my web server but when I load the page in IE, I get

HTTP/1.0 200 OK Content-type: text/html Hello World!

and on Firefox ...

HTTP/1.0 200 OK
Content-type: text/html

<html><body>Hello World!</body></html>

What is wrong? Below is what I added to my httpd.conf file ...

LoadModule ruby_module /usr/local/apache2/modules/mod_ruby.so
## On Linux (FC3) this becomes
# LoadModule ruby_module /usr/lib/httpd/modules/mod_ruby.so

# ClearModuleList
# AddModule mod_ruby.c

<IfModule mod_ruby.c>
RubyRequire apache/ruby-run

# Execute files under /ruby as Ruby scripts
<Location /ruby>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Location>

# Execute *.rbx files as Ruby scripts
<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
</IfModule>


Thanks, - Dave
 
B

Brian Candler

Hi,

I just installed mod_ruby1.2.5 with Apache 2.2.3 on Fedora Core 5
Linux. Triumphant, I downloaded this test script to my web root
(public_html/test.rbx)

#!/usr/local/bin/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>\r\n"

I restarted my web server but when I load the page in IE, I get

HTTP/1.0 200 OK Content-type: text/html Hello World!

and on Firefox ...

HTTP/1.0 200 OK
Content-type: text/html

<html><body>Hello World!</body></html>

What is wrong?

It did what you told it to :) If you do the following, you should see why:

telnet 127.0.0.1 80
GET /test.rbx HTTP/1.0
Host: localhost
<hit Enter again>

If I'm right, the web server has already output a HTTP/1.0 response, so your
script is outputting a second one, which the client sees is not a valid
header, so treats it as the response body.

If you really want your Ruby program to generate the HTTP response, you'll
need to configure your webserver to run it as an nph script. Maybe renaming
it to nph-test.rbx will be sufficient. Otherwise just remove the first print
line from your script.

Regards,

Brian.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top