This post is part of a series about my experiences building a PHP app for Windows Server 2008 and IIS 7 for the European WinPHP Challenge 2009 which is sponsored by iBuildings, Microsoft and Leaseweb.
One benefit for Microsoft with this competition is that all the participants have to blog about their experiences. This should gain MS some exposure, though I wonder how much will be negative from those of us more familiar with nix.
No doubt my feed will have a few Microsoft centric posts over the next week as I get to grips with the environment. Hopefully it'll then settle down as I talk about developing PHP :)
I have a fair amount of experience using Windows XP as a PHP development environment from about 18 months ago or so when I converted to OS X. I've also flirted with Vista for a week when my MacBook Pro was in for repair. My overriding memory of Vista was forever clicking boxes about security that I stopped reading. It will be interesting to see how Windows Server 2008 fares in comparison.
My general plan is to create a new VMWare Fusion virtual machine for Server 2008 and then share the folder where the app will live via SMB back to the Mac so that I can develop with familiar tools. It will be interesting to see if I can use subversion on the mounted drive, or whether I need to commit from within the VM.
Creating a new VM in Fusion is simple enough and it started the installation automatically for me. As I don't have a product key, I left that blank and started the install. The installer then asked me which edition of Windows that I wanted. The choice was Full installation or Server Core Installation. The second sounded cheaper, so I wondered if that's what we were going to be given. Off to the web to find out what the difference was.
Microsoft's website is a maze of non-information. I started with the Compare menu item within Product Information, but that was all about comparing Windows to Unix. Undaunted, I tried the Editions->Compare Features menu, but that gave me a table about the differences between Enterprise, Datacenter, Standard, Foundation, Web and Itanium versions of the server using lots of acronyms. The Compare Server Roles option and Compare Server Core Installation Options also didn't help answer my question. I gave up on the Microsoft website.
As an aside, how on earth does anyone actually buy the correct version of Windows for their server?
Having abandoned MS's site, I went to Wikipedia's Windows Server 2008 page and found out what I needed immediately:
Windows Server 2008 includes a variation of installation called a Server Core. Server Core is a significantly scaled-back installation where no Windows Explorer shell is installed. All configuration and maintenance is done entirely through command line interface windows, or by connecting to the machine remotely using Microsoft Management Console.
So I picked Full Installation as I'm nearly sure you can't get Microsoft Management Console for OS X...
Whilst waiting for the installation, I searched some more on the MS website and found this MSDN article which also answers my question. I'm really hoping that I can navigate php.iis.net and windows.php.net better :)
Once installed, I quite liked the simplicity of the login screen and desktop with a plain blue background and the "classic" look at feel the to windows. Of course, the first thing I saw was a "Windows requires your permissions" dialog box so it's not that much better than Vista!
The "Initial Configuration Tasks" window is easy enough to work through as it's nicely laid out in steps. Interestingly I needed to click yet another permissions box so I could set up the networking, but it allowed me to change the computer name and workgroup without a murmur (other than a reboot). Rebooting is a popular past time whenever I do anything vaguely sysadmin related on Windows XP VMs. I was quite surprised how often I've rebooted already on this Server box.
Once I've got all the updates (more permissions boxes and restarts...), I'll install PHP...