- A web server (usually Apache)
- A language interpreter for PHP or Ruby
- And usually a database server
And this is a simplification. The user needs to install and configure these things which requires knowing about a lot of esoteric stuff. If you've never done this before, you can lose some of your hair. Unless you like pain, why put yourself through this?
If you want to create your own web applications, Run BASIC will install everything ready to run in one shot. http://www.runbasic.com/
Why do people put up with complex programming systems? Because for more than a decade they had much harder tools, so now they think PHP and RoR are easy.