Setting up a new OS X or Unix web developer environment?

I'm doing a clean install of OS X Snow Leopard and I was wondering what people think they should go to the ideal web development environment?

Can I get a good outline of what you would do when setting up a clean system?

The main focus is on how HTML, CSS, PHP and ActionScript work. But I would also like to use other languages ​​and frameworks (including Ruby and Python, Rails and Django).

Basic goals

  • Cleanly and efficiently organized
  • Efficiently add new frameworks, project source code and packages
  • Easy to disable components, frameworks and parts of the environment.
  • Ability to host multiple projects at the same time without a lot of conflicts or dependencies
  • Effective source control across all projects and environment configurations.
  • Some idiot proof for non sysadmin, but enough power for customization
  • Easy to isolate and debug environment configuration.

I know MAMP and XAMPP. And I am using Git.

I was thinking about using macports to customize various tools and packages. I also want to manage the wireframes clearly. But I also want to be able to experiment with unknown frameworks without the fear of cluttering or disrupting my normal day to day work environment.

I know the command line, but I am by no means a system administrator. With all that, what would you say to manage your hosting environment? Apart from the VM - their tools for conveniently configuring the sandbox (different versions of frameworks, databases, web servers, etc.) and linking them to specific client project code?

It seems like macports, putting everything in / opt is the way to go. I don't need to worry about dumping system binaries. And if I am wrong or want to start, I can leave / choose any time I want.

Are there tools for managing change in your local web environment? For example, if I install a specific package, I can easily see "what has changed". Basically, it's a way to make a difference on part or even the whole system, so that you know what the consequences are when I add a new new structure or update a package like PHP, Ruby, Perl, MySQL, Apache, etc. What about snapshots and configuration backups? Can I control the version? If I configure PHP and Apache in a specific way to work with a specific client hosting environment, can I override that configuration to quickly switch to another project?

Feel free to mention or link other related questions or answers if this question has any overlap. And I'm not sure if this question should go to serverfault or superuser. But what I'm most interested in seeing is what other web developers have to offer.

Also, in particular, I am curious about learning from people. The main thing is, if you start out with something, what would you do differently? Do you know what you know now?

+2


source to share


1 answer


For snapshots of all installations, including servers, VM will be the way to go. On Linux, I often use chroots to isolate the installation, but then Apache ports, etc. Are still available.



+2


source







All Articles