I wish to port an old web app over to Rails but I'm running into
"political" issues. The host of the server I have access to refuses to
open a port for me claiming that an error in a Rails application could
bring down the server. Is there any way to do Rails development without
having an open port?
Please let me know if clarification is needed here.
Theoretically, of course, with sufficient test coverage you should
never actually need to fire up the development server - all the
behavior your application is required to show is defined in tests,
which pass and so you know it works... ^_~
Perhaps more usefully, the most obvious answer is "Don't develop on
that server."
You can download all the components you need, often in nice easy to
install packages for just about any OS you use. Try googling for
'Instant Rails' or 'bitnami rails' if you're on windows for example.
On linux use yum/aptitude etc. Then only push things up to the server
when they're fully developed and/or ready for 'real-world' testing.
Your second alternative is to use something like ssh port forwarding
(check your ssh help/man page to find out how to do that) to see the
rails application on your local PC without requiring the port to be
opened up to the wider web, with the development mongrel bound to the
localhost or external access to the port firewalled off.
Finally, what is their policy on developing, say, php scripts on the
server? An error in a php script is just as likely to bring down the
server, if not more so. The php script is probably running with
whatever privilege apache has. The rails application, in development
mode, is likely running with just your privileges and in production
can be given it's own unprivileged user. Which isn't perfect
security, but it helps.