Yesterday I got my notice that my project was approved for the First Annual WinPHP Challenge, sponsored by Microsoft, Ibuildings, and Leaseweb. So here I am with a nice little side project with some motivation: Mix 2010 trip and DPC10, hosting and ms swag. Oh, and dont forget bragging rights… ya right.
So part of the point is that we develop with our own hosted Windos 2k8 server. So what is the big deal? There isn’t one. So lets keep it interesting: I think I will try to use the best of M$ tools (SQL Server Web Data Admin not PhpMsAdmin), and keep the server as secure as possible (no logging in as Admin after configure etc. treating the server like a production server). I will use any excuse to get masochistic and do stuff like port some MySQL schema over to MSSQL. But I don’t see any opportunity for that yet since my project is mostly unique. But we will see. I will develop from Win to Win as that is the point. I will develop with what I think are best practices and with best of breed tools. Keep it free. That will mean M$ tools for Microsoft things, and the best of PHP tools, with the restriction of it being free. I will mention if there are pay for tools that may be better IMO.
So I logged into my server and found a neatly fresh Windows 2008 installation and the Initial Configuration Tasks window smiling at me. I assume the rest of the computer information was given, and this is a standalone server, so I moved on to section two. All the updates were already take care of, nice touch.
So now to add IIS and PHP, since that roll is not enabled. There are several ways you can do this. You can install the most stable version of IIS by adding the roll and letting it handle the install. Then you would download the latest stable PHP MSI from php.net. This would require you to keep PHP up to date on your own. An alternative to the MSI installer you could install Zend Server (the Community Edition [CE] is free as in beer) which is OK if you plan on paying or manually downloading and running uninstall/reinstall for updates. Which brings us to Microsoft Web Platform, which isn’t perfect either, but promises us M$treet-cred… er, I mean updates. So I downloaded the WPI Launcher to my local computer and moved it to the remote desktop from my mapped drive (see Options on Remote Desktop Connection).
I launched the installer and jumped right to the Web Platform tab. You may think it odd to have to select ‘Static Content’ when you install a web server, but the point is to have the option of full control. So I added the options ‘Static Content’, ‘Default Document’ and ‘URL Rewrite’. Then under Management I selected ‘IIS Management Console’ and ‘Database Manager’ since I will be using the remote desktop for management. Going back to the main list, I then selected the ‘Customize’ link next to ‘Frameworks and Runtimes’ and selected PHP (there it is!). I also want a database so I select ‘Customize’ next to Database and put a check next to ‘SQL Server Express 2008’ (we will see how well the mssql extension for PHP is).
When the install starts it will ask how you want to do authentication. So we set a ‘sa’ password. I like to set it to ‘pw’ on production machines to raise your DBA’s heart rate. It is always a good practice, even when working with your local computer to set something a little more complicated than ‘pw’.
When the installer completed I was sad to see that it required a reboot. It may have been my thrashing the server around before getting serious, but I hope the installer normally doesn’t require this. Installers for servers have come a long way in their intelligence and ability to deal with what they impact and to avoid bumping into ‘unknown’ places requiring a blind reboot.
For some reason the URL Rewrite module did not install. So I downloaded it from here, and ran it manually. It isn’t a requirement at this time, but I usually end up using it. This installed fine on my Vista box with the WPI so I am not sure what I did wrong.
Then I wanted to see what I had so I ran ‘inetmgr’ to bring up the IIS MMC. Nothing shocking, IIS running with the Default website running on *:80. It was clean with no virtual directories to unsafe things. Much better than IIS4.
Next, installing SQL Server Web Data Admin and toys plus some research.