I’ll restate the obligatory: PHP is a language; Ruby is a language; Rails is a Web App framework. So…
Up until recently, the deployment story for PHP was stupid-simple because it was on almost every shared Web host running in mod_php and you could sign up and have “Hello World” serving up Web pages in 5 minutes. PHP is (debateably) a bit more Windows-friendly as well. CPanel on the shared hosts set up .conf files for Apache that made everything work nicely for a PHP app and you really didn’t need to know what was going on under the hood.
Rails started out with a bleak deployment story, but quickly Switchtower, renamed Capistrano changed that. But ever-changing recommended “Rails stack” has made deploying much more of a decision-making process than pushing out a PHP app. Things were beginning to settle down with all the cool kids setting up nginx servers proxying to mongrel (or thin or evented-mongrel) clusters and along came Phusion Passenger. That’s mod_ruby. Now Rails deployment is stupid-simple.
But in either case, you really do need to know something about what’s going on under the hood. If you’re doing anything that matters, you’ll want to get it right. Repeatably right. Testably right. Not so easy for Rails, even harder for PHP.