Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just got a new work machine up and running and I'm trying to decide on how to set everything up directory wise. I've done some digging around and really haven't been able to find anything conclusive. I know it's a question with a variety of answers but I'm hoping there's some sort of general guidelines or best practices to go by.

With that said, here are a few things specific to my situation.

  • I will be doing actual development and testing on the same machine as the server. It is a single user machine in the sense that I will be the only one working on the machine.

  • There will be multiple hosted languages, specifically PHP and RoR while possibly expanding later.

  • I'd like the setup to translate well to a production environment.

With those 3 things in mind there are a couple of things I've had in the back of mind.

  • Seeing as it's a single user machine I haven't been able to decide whether or not I should be working on things out of my home directory or if they should be located outside of it. I'm feeling that outside of a user directory would be better as it would translate better to a production environment, but I'm also not sure if that will come with any permission annoyances or concerns seeing as I'll be working on the same machine.

  • Hosting multiple languages seems like it may be a bit quirky. With PHP I've found you're generally just dumping the project somewhere in the document root where as something like a Rails app you have the entire project and you only want the public directory in the document root.

Thanks for any insight, opinion, or just personal preference from experience anyone can offer.

share|improve this question

Rather than having multiple languages in a single install, and doing production and dev on a single server, I would setup multiple Virtual machines on this computer. This might be a hit on ram/HD, but it easily defines the boundaries between different environments, and allows you to quickly roll back to a previous snapshot while keeping other projects and environments intact.

If that is not your cup of tea, I in general have tried to keep most of everything located in my home directory, and keep a list of everything that is installed outside of it. This makes backing up and rolling out of new test environments to production servers easier. Originally I would also keep each project (which may be a different language) in their own directory setup as well, to allow for quick roll out.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .