what is rails? Newbie question.

I went through the documents and tutorials and they are all good to
know how to create web apps using rails.

I would like to understand the fundamental concept about Rails. I
understand using rails you can create a web page very fast and how to
use them . But I would like to know what makes Rails? If I have linux
box, can I host rails? what are the things I need to install, how a
request get processed on a web server for a rails page?

I would like to understand what happens when the client hits a web
page, how the request flows to the server and how the server knows
what to execute etc.,

I really like the rails but before I go in detail, I want to know more
about the fundaments. Please direct me some url or some document which
explains these things, thanks.

That's a lot of ground to cover with one question.

For a background in the major design pattern behind Rails, it's
important that you understand Model-View-Controller [MVC].
http://en.wikipedia.org/wiki/Model-view-controller

Yes, you can host a Rails app on Linux. A common, and solid, setup is
to use Apache 2.2 + mongrel + mongrel_cluster with either MySQL or
PostgreSQL on the backend.

http://mongrel.rubyforge.org/

http://blog.codahale.com/2006/06/19/time-for-a-grown-up-server-rails-mongrel-apache-capistrano-and-you/

This is only when you're ready to deploy a production-quality
application though. If you just want to get something running to play
with, all you need is Rails. Installing mongrel is trivial so you
might as well do that too. Keep it simple to start with until you
have a working application.

And while it might sound trite, I have to say "use Google" for a lot
of the newbie questions you might have about Apache, mongrel, Rails,
etc. Everything you can imagine has been asked and answered 1000
times already. If you're willing to read documentation, you'll end up
with a nice set-up.

-- James

Thanks James. Yes I am aware of MVC pattern and I use it a lot so that
was easy to understand. Only thing I wanted to understand is, if I a
linux box with PHP and MySql support, can I install rails and make
rails run in parallel to PHP application.
Again thanks. Now that I have some links the ones you put up, I will
start the reading.

I would like to understand the fundamental concept about Rails. I
understand using rails you can create a web page very fast and how to
use them . But I would like to know what makes Rails? If I have linux
box, can I host rails?

Linux was always preferred for hosting stuff made with open source,
cross-platform languages like PHP, Python, Perl, Ruby ... So yeah, of
course you can host Rails on a Linux box. Most of the people do it!

what are the things I need to install

Ruby, rubgems, Rails and database adapters (through gems), Apache/
Lighthttpd/Nginx with FastCGI or reverse proxy to Mongrel clusters.
There are many good deployment articles: http://del.icio.us/mislav/rails+deployment

All of them describe exactly what to install.

I would like to understand what happens when the client hits a web
page, how the request flows to the server and how the server knows
what to execute etc.

Want to poke at the internals, eh? Here you go (roughly):
http://www.gliffy.com/publish/1008976/

- Mislav

The first thing that you need to understand here, and I struggled with
this division for a while was what was Ruby and what was Rails.

So:
Ruby is an object orientated scripting language. In this case you
mentioned PHP, PHP is also a scripting language.

Rails is a framework that is created using the Ruby language, there
are also PHP frameworks out there, again made in PHP.
All those gems that are installed when you install Rails....
They are all pure ruby and the make up the Rails framework, you add to
the framework by adding new gems and including them in your
project..... Niiece huh.

But under it all, what is Rails....? It's Ruby, and can you run more
than one language on your computer at once.....???
Of course you can, you should have no problems at all running PHP and
Ruby/RubyOnRails on one machine( I'm doing it on this machine right
now ), I also run, Erlang, Python, Java etc etc, the list goes on.

Hope this helps,
Cam

Thank you very much and it is exactly what I am looking for. If you
have time for one more question. I know how exactly IIS work to pharse
an asp or asp.net page. Is there a document or link explaining how the
same thing is done for Rails?

Mislav already answered the flow in his link
http://www.gliffy.com/publish/1008976/

Thanks Mislav

Also check out Obie's upcoming book The Rails Way. It's not published
yet, but it's available in RoughCut form from O'reilly, and it goes
into more of the gory details you sound interested in.

Thanks.