PHP Development on Windows

Being a Windows user, during many years of PHP development,  I’ve evaluated various versions of WAMP and XAMPP packages, tried to manually setup Apache and MySQL, and I must say that I’ve had some success there. Finally – I have the statement of the best platform ever. It is LAMP.

Actually, I’ve used Linux all the time: almost all of the time for production, and quite often for development, but now that virtualization came to reality, I can say that I have my LAMP box in my Windows. It is tightly bound to my Windows machine and I can take it with me wherever I want (laptop) without depending on the office server.

I don’t mean this article to be a tutorial, I just wanted to share an idea of what can be done.

Software used

  1. Microsoft Windows XP Professional
  2. Sun VirtualBox
  3. Ubuntu Server 10.4
  4. Webmin
  5. Eclipse 3.6 (Helios)
  6. PuTTY + PuTTY Connection Manager

How it works

Linux is installed in XP as  a virtual machine using Sun VirtualBox, choosing LAMP software package. It is configured to use only 384MB RAM and I still need no more. SSH is enabled in Ubuntu Server by default, so all the admin/configuration stuff can be done using PuTTY. PuTTY Connection Manager is a great solution to organize multiple PuTTY sessions in one window and do even more. I’m not using Webmin that often, but sometimes I feel more comfortable to go to web GUI.

Normally, multiple virtual hosts are configured in server’s Apache, and each host’s DocumentRoot is shared using Samba (separately or together). Eclipse is installed in windows, and eclipse projects refer to server folders thru network shares.

Why?

PHP websites and applications are practically all the time run and best supported in Linux operating system, and most of the modules are readily available as binaries or easy to compile for linux. Ubuntu has most of them available thru repositories for aptitude installation.

I read of many people installing Windows as a VM inside Linux so they can test their work in Internet Explorer, but I must say I’m pretty much involved with different Windows software both on personal and corporate level. With my setup, I only have one graphical environment (Windows host), which saves a lot of (processor&memory) resources. It is not a real drawback because Linux lets you to do virtually anything using command line interface (or Webmin).

That’d be all for now.

This entry was posted in Free Software, Infrastructure, Software Development, Tools and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *