I am an absolute newbie to web development and ruby on rails. I am planing to deploy a ror application on the Linode 512 plan. My website would be basically a forum that allows users to upload photos using Ruby 1.9.3 and Rails 3.2.
Which OS should I use? What are their difference? (Ubuntu / Debian / CentOS / Fedora)
Should I use Apache or Nginx? What are their difference?
Should I use PostgreSQL, MySQL, MongoDB or any other kinds of DB provided on Linode? What are their difference?
My target audience would come from China which means I can't use Amazon S3. Should I let the users upload the photos to the Linode server?
Is there any step-by-step beginner‘s guide for this issue?
Thx
First of all, I think you are worrying too much. If you are a newbie, just follow the popular choice for a start, then change, modify, scale as you go. As your skills mature, you will know what best suites you.
Below are some choices that will be easier for you:
Which OS should I use? What are their difference? Ubuntu
Should I use Apache or Nginx? What are their difference? Apache. If it is a small website, it doesn't matter for now.
Should I use PostgreSQL, MySQL, MongoDB or any other kinds of DB provided on Linode? What are their difference? MySQL. MongoDB is a NoSQL database, may not be for you for the moment.
My target audience would come from China which means I can't use Amazon S3. Should I let the users upload the photos to the Linode server? Upload to Linode for now. Don't scale it prematurely.
Is there any step-by-step beginner‘s guide for this issue? Ryan's RailsCasts: http://railscasts.com/episodes/373-zero-downtime-deployment and http://railscasts.com/episodes/335-deploying-to-a-vps, they are must-watch, but not free.
For all these setup, Linode's tutorial is good for a start. You should look at @Stefan answer too.
You should also try to deploy to Heroku just to get a feel of it. Rails Tutorial is good for you to learn up from development to deployment.