[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Apache2, CGI, Ruby & Hello-World

Nathan Farrar

9/14/2006 2:50:00 PM

According to ProgrammingRuby :
You can use Ruby to write CGI scripts quite easily. To have a Ruby
script generate HTML output, all you need is

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

I have a fresh install of ubuntu, almost no experience with apache, cgi,
or ruby, but a lot of patience.

I haven't modified my apache2 config, I haven't installed any extra
apache-ruby modules.

If you go to http://at... you'll notice a ruby.htm file.
Obviously this won't execute. I'm wondering what I need to do to make it
execute.

Do I need to install to install an apache module? Can I simply change
the extension and set it to executable?

I imagine there are a few simple concepts I really don't understand that
I need to.
I will really appreciate any help. Thanks.

--
Posted via http://www.ruby-....

2 Answers

Paul Lutus

9/14/2006 3:49:00 PM

0

Nathan Farrar wrote:

> According to ProgrammingRuby :
> You can use Ruby to write CGI scripts quite easily. To have a Ruby
> script generate HTML output, all you need is
>
> Code:
> #!/usr/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>\r\n"

This would work, assuming the file had a Ruby extension, and assuming Apache
was configured to execute Ruby CGI scripts.

> I have a fresh install of ubuntu, almost no experience with apache, cgi,
> or ruby, but a lot of patience.
>
> I haven't modified my apache2 config, I haven't installed any extra
> apache-ruby modules.
>
> If you go to http://at... you'll notice a ruby.htm file.
> Obviously this won't execute. I'm wondering what I need to do to make it
> execute.

First, as long as it has that extension, Apache will interpret it as an HTML
file, not a Ruby file. You need to submit your Ruby CGI scripts to Apache
in such a way that Apache understands what they are.

> Do I need to install to install an apache module? Can I simply change
> the extension and set it to executable?
>
> I imagine there are a few simple concepts I really don't understand that
> I need to.

The problem you face is not to write a Ruby CGI script (for which examples
abound), it is to get Apache to execute it. I would go on, but this isn't
about Ruby, it's about Apache configuration.

http://groups.google.com/groups/search?q=apache+configur...*ruby*

Good luck!

--
Paul Lutus
http://www.ara...

Michael Greenly

9/14/2006 4:29:00 PM

0

Nathan Farrar wrote:
> According to ProgrammingRuby :
> You can use Ruby to write CGI scripts quite easily. To have a Ruby
> script generate HTML output, all you need is
>
> Code:
> #!/usr/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>\r\n"
>
> I have a fresh install of ubuntu, almost no experience with apache, cgi,
> or ruby, but a lot of patience.
>
> I haven't modified my apache2 config, I haven't installed any extra
> apache-ruby modules.
>
> If you go to http://at... you'll notice a ruby.htm file.
> Obviously this won't execute. I'm wondering what I need to do to make it
> execute.
>
> Do I need to install to install an apache module? Can I simply change
> the extension and set it to executable?
>
> I imagine there are a few simple concepts I really don't understand that
> I need to.
> I will really appreciate any help. Thanks.


You should rename the file to something *.rb (hello.rb) for example and
make it's executable to apache. Set it's owner to www-data, the user
account apache runs under with the command "chown www-data:www-data
hello.rb". Then set it's permissions so it can be run "chmod 700
hello.rb".

Now you need to configure apache. Edit
"/etc/apache2/sites-available/default". In the <Directory /var/www>
section add the following line...

AddHandler cgi-script .rb

In the options line make sure it includes +ExecCGI so it should look
something like this....

Options +FollowSymlinks +ExecCGI

Have apache reload the config....

sudo /etc/init.d/apache2 reload


--
Posted via http://www.ruby-....