views:

83

answers:

1

I am doing a clean install of OS X Snow Leopard and I was wondering what people think should go into the ideal web developer environment?

Can I get a good rundown of things you would do when setting up a clean system?

My main focus is HTML, CSS, PHP, and Actionscript work. But I would also like to dabble in other languages and frameworks as well (including Ruby and Python, Rails and Django).

The main goals

  • Cleanly and rationally organized
  • Efficient to add new frameworks, project source code and packages
  • Easy to disable components, frameworks and parts of the environment
  • Ability to host multiple projects simultaneous without too many conflicts or dependencies
  • Effective source control over all projects and environment configurations
  • Somewhat idiot proof for a non system administrator, but sufficient power to customize
  • Easy to isolate and debug environment configurations.

I am aware of MAMP and XAMPP. And I use Git.

I was thinking about using macports for setting up various tools and packages. I also want to cleanly manage frameworks. But I also want to be able to experiment with unknown frameworks without fear of cluttering or breaking my normal day to day working environment.

I know the command line but I am by no means a system administrator. With all that said what would you recommend for managing the hosting environment? Apart from VM are their tools for conveniently sandboxing configurations (different versions of frameworks, databases, webservers, etc) and linking these to a particular client's project code?

It seems like macports by putting everything in /opt is the way to go. I don't have to worry about mucking up the system binaries. And if I make a mistake or want to start over I can blow away /opt anytime I want to.

Are there tools to manage changes to your local web environment? For example if I install a particular package can I conveniently see "what has changed". Basically a way to do a diff on part of or even the whole system to know what implications are in place as I add new a new framework or update a package like PHP, Ruby, Perl, MySQL, Apache, etc. What about snapshots and backups of the configuration? can I version control this? If I setup PHP and Apache in a specific way to work with a specific clients hosting environment needs can I undo that configuration to quickly switch over to a different project?

Feel free to mention or link other related questions or answers if this question has any overlap. And I am not sure if this question should go on serverfault or superuser. But I am mostly interested to hear what other web developers have to offer.

Also, in particular I am curious to learn from people's mistakes. The main gist is, if you were starting over what would you do differently? Knowing what you know now?

+2  A: 

For snapshotting entire setups including servers VM's would be the way to go. In Linux I often use chroots to isolate an install, but then the Apache ports etc are still shared.

whatnick