Search code examples
stacklampwamp

.NET developer looking to work on a LAMP stack, need help with workstation environment


My main development, and workstation, is on an MS stack in .NET. I'm using IIS for my web endeavors, and everything works great.

However, I have a need to be able to work on and test on a LAMP stack for various reasons. I have various clients that are running on LAMP stacks and need help with projects.

My question is, given that I do most of my work on an MS stack, what should I do about getting up and running on a LAMP stack + PHP IDE?

Things I'm considering:

  • Running a virtual machine that runs Ubuntu for my LAMP or something along with Eclipse.
  • Run a WAMP stack instead. I'm not liking this one too much because I'd have to run Apache under a different port, and I'd really like to isolate the two development environments. Also, the production environment with definitely not be a WAMP stack.

So, what should I do? Please include pros and cons in your answers. Also, tips on installation would be helpful if there are some gotchas I might not be aware of.


Solution

  • Definitely go with the VM solution on this one.

    For any given customer, you can spin up and configure, at will, a development and server environment that is as similar to their production environment you want.

    So if Customer X is on Ubuntu Server 8.x, you can start that VM. Customize as you see fit to how that customer's production environment is. Any changes you make to that environment don't stomp on other customers environments. Customer Y is on some Debian platform in another VM, totally separate.

    When you need to develop a solution, fix a defect, check out a change, whatever, you then fire up your Dev VM. Whatever flavour of OS is up to you of course. Again, separate from your customers' environments.

    Keep your development VM separate from your customer environment VMs. Keep all your VMs on a separate physical HDD in your machine. Speedy! Definitely don't define your VMs on your C: drive.

    This all has the benefit of being portable. If/when your physical machine's hard drive dies, you have a backup, or at least you have it on another HDD in your box. If THAT dies, you lose almost nothing (well, only that since your last backup!). If you want to move everything to another faster machine, easy enough... just remove the HDD into the new machine.

    Which VM Host? Your choices range from Virtual PC, to VMWare Server, Sun VirtualBox, and more. I'd recommend VMWare Server. It can run your VMs headless if you choose. You won't need to have the console open on your desktop. VMWare Server can create the images as well, whereas I had problems creating VMs in VMWare Workstation. VMWare Server's performance feels slick... almost nonexistant (Win 2003, 4GB RAM total, 2 VMs with 512 RAM each). I rarely feel the effect of running those clients.