Re: I have one complaint about this whole boru server situation.
"Back up. Back up. Back up." It sounds a little bit glib, always pops right to the top of the list after you needed to hear it, and is almost completely wrong anyway, at least from a developer's perspective.
Wrong? That's right, wrong. Backing up is something you do in a production environment (or at the system level). I realise that you were working in a developmestuction environment (development, testing and production all rolled into one), which has its own particular unpleasant odor, but that doesn't entirely excuse you from using the best practices others have learned from a long history of similar disasters.
The very first thing that should be mentioned in any "Developing for N00bz" book -- even before "Hello, World" -- is that nobody should ever engage in developing code (or writing literature, for that matter) without a version control system in place. Something like Mercurial or Git isn't just for teams. Think of it, if you need to, as a sort of "infinite Undo" -- one that keeps on working even after you've saved the file and closed your development client (text editor, IDE, grahics editor, etc.). There is a much greater chance that you (and not some system failure) are going to be the source of your biggest problems. It can be incredibly difficult to recover working code from the mess you made of things while "improving" things, or to get back to Point A when you figure out at Point G that the decisions you made at Point B were wrong. Version control can really save your butt in a lot of instances -- and yes, backing up your repository will save you from things like hard drive failures, but backup is not a substitute for a VCS.
It's a good idea, too, to keep at least your development/testing and production environments separate. There's much to be said for developing locally -- and if you're doing PHP/MySQL development, there's really no good reason for not doing your preliminary testing locally as well. There isn't a single platform that provides the facilities needed for development (like a decent hardware keyboard) that doesn't have an XAMP stack available for it (where X is the OS, A is Apache, M is MySQL and P is PHP). If you need to change machines from time to time (that is, you don't have or can't always use your own computer), you'll find that many of the XAMP stacks run as portable, so you can carry around your entire dev environment (IDE, VCS and XAMP stack) on a USB key.
I know, this advice comes a day late and a dollar short, but it's worth keeping in mind for the future. Paranoia is one of those things that's virtually useless in the "real world" but almost essential in the computer world. (And if it helps at all, I learned all of this by losing a major -- and almost complete -- line-of-business corporate application nearly a decade ago after a hard drive failure on a dev server I learned wasn't being backed up. A then-excellent memory, copious paper notes and illustrations and a "heroic" 400-hour month meant that I was only two weeks late delivering for acceptance testing. It's a lesson one only needs to learn once.)
“Beware of bugs in the above code; I have only proved it correct, not tried it.” --Donald Knuth
"It was as if its architects were given a perfectly good hammer and gleefully replied, 'neat! With this hammer, we can build a tool that can pound in nails.'" -- Alex Papadimoulis (on TheDailyWTF.com)